1

movアセンブリの指示を理解しようとしています。次のようになります。

mov 0x804a12c(,%eax,4),%eax

%eax新しい結果をアドレスに移動していることは知って0x804a12cいますが、その部分がわかりません(,%eax,4)

洞察はありますか?ありがとう!

4

3 に答える 3

2

この0x804a12c(,%eax,4)ピースは、x86 でのアドレス指定のモードです。この部分は次のように分解できます。

DISPLACEMENT(BASE,INDEX,WIDTH )

実際のアドレスは次の式で計算されます。

BASE + (INDEX * WIDTH ) + DISPLACEMENT

したがって、命令:

mov 0x804a12c(,%eax,4),%eax

レジスターに移動0 + (%eax * 4) + 0x804a12c%eaxます。

于 2013-11-08T19:11:18.540 に答える
0

これにより、メモリ アドレスの dword が に移動0x804a12c + %eax * 4され%eaxます。そのような命令は、たとえば int のグローバル配列の計算されたインデックスでのアクセスであると考えるかもしれません。

于 2013-11-08T19:09:54.580 に答える