2

x86 の LEA 命令をよく理解しようとしています。

leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax

これらの2行を考えると、私はそれを知っています:

eax = edx + edx*4

その後

eax = edx + edx*2

2 つの質問です。まず、これらの命令がこの例のように順番に表示される場合、2 行目が実行されると eax レジスタが上書きされますか? そして、正確には何がレジスタにロードされるのでしょうか? 別の住所?それとも、これらのレジスタが指す値に対して算術演算を行っているのでしょうか?

4

1 に答える 1

2

これらの命令がこの例のように順番に表示される場合、eax レジスタは 2 行目が実行されると上書きされますか?

はい(両方の命令の後に上書きされます)

そして、正確には何がレジスタにロードされるのでしょうか? 別の住所?

EDX で記述されたメモリ アドレス + EDX に値として格納されたオフセットの 2 倍

于 2012-02-06T00:32:38.597 に答える