0

私はこのコードを見つけました:

lea 0x10(%edi),%esi
mov %esi,0x4(%edi)

しかし、この組み合わせがよくわかりません。

  1. lea-command のスタックで正確に何が起こるか。
  2. mov 0x10(%edi),0x4(edi%) と書くだけで簡単ではありませんか?
4

2 に答える 2

0

leax86 アセンブリでのvs.の使用はmov、C/C++ で次のように言うのと同じ種類のものです。

char *ptr;
...
ptr = &val;

対。

char *ptr;
...
*ptr = val;

lea アドレスを計算movするか (またはメモリ オペランドを使用する他の命令)、それを逆参照(アクセス) します。

x86leaアセンブリでは、C/C++ で「ポインター演算」と呼ばれるものも同様です。メモリ アクセスは含まれません。

于 2013-06-14T15:02:20.430 に答える