x86堆方法

时间:2013-01-15 05:27:22

标签: assembly x86 x86-64

我试图了解这个x86指令正在做什么:

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

这就是我的想法:

将eax中的值移动到内存中从标签堆开始的区域,并从rdx中的值移位字节。

这是对的吗?

由于

1 个答案:

答案 0 :(得分:6)

内存操作数的AT& T语法是:

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

因此,您所显示的指令中的内存地址(在英特尔语法中更好地表示):

heap[rdx*4] 

换句话说,将eax中的值存储在距rdx开头的heap * 4个字节处。由此,我们可以推断出heap可能是一个4字节整数的数组,rdx是一个循环计数器或该数组的索引。

在Intel语法中,这将是:

mov heap[rdx*4], eax

有关语法之间的比较,请参阅this page