2016-03-30 17 views
1

私は次の説明を見ていて、理解できないようです。私はオンラインのPowerPC命令のリファレンスをいくつか読もうとしましたが、あまり理解できません。ここでlwzでは実際に何が起こっていますか?

lwz  r4, [email protected](r28) 

DWORDはIDA

dword_91C0DB28: .long 0  

に示した方法lwzが呼び出され、なぜそれが有用であるとき、正確に何が起こっていますか?

+0

'lwz'は与えられたメモリアドレスにワードをロードし、上位32ビットをゼロにします。それについては何が分かりませんか? –

+0

@SamKuhmonenロードするアドレスが 'dword_91C0DB28'の場合、' r28'の目的はこの場合ですか? – Aidan

+1

_ "ロードしたいアドレスはdword_91C0DB28" _です。そうではありません。 'dword_91C0DB28'はディスプレースメントだけで、ベースアドレスは' r28'で与えられます。実効アドレスはbase_address + sign_extend(ディスプレースメント)です。この場合、 'r28'は' dword_91C0DB28'が置かれているセクションの先頭のアドレスを含んでいます。 – Michael

答えて

3

lwzは、定義されたメモリアドレスからターゲットレジスタにワードをロードし、上位32ビットをゼロにします。この場合、ターゲットはr4で、メモリアドレスはdword_91X0DB28 + r28です。

+0

私は今、 '@ l'と' @h'を理解してから、私たちのdwordの下位ビットと上位ビットをロードします。 – Aidan