3

このx86命令が何をしているのかを理解しようとしています:

 movl %eax, heap(,%rdx,4)

これは私がそれをしていると思うことです:

eaxの値を、ラベルヒープから始まるメモリ内の領域に移動し、rdxの値からバイトを置き換えます。

これは正しいです?

ありがとう

4

1 に答える 1

6

メモリオペランドのAT&T構文は次のとおりです。

%segreg:disp(base,index,scale).

したがって、表示した命令のメモリアドレスは次のようになります(Intel構文でより適切に表現されます)。

heap[rdx*4] 

つまり、値eaxを。rdxの先頭から*4バイトに格納しますheapheapこのことから、これはおそらく4バイト整数の配列であり、rdxその配列へのループカウンターまたはインデックスであると推測できます。

Intel構文では、これは次のようになります。

mov heap[rdx*4], eax

構文の比較については、このページを参照してください。

于 2013-01-15T05:35:07.980 に答える