x86指令帮助:MOV [edx],eax

时间:2012-12-24 03:06:34

标签: assembly x86 mov

我正在阅读一本描述C链表的书以及它们如何在x86 ASM中表示。我很难理解指令MOV [edx], eax

如果指令被反转,MOV eax, [edx],我理解为复制存储在edx中的存储器地址所代表的4个字节,并将其存储在eax中。

MOV [edx], eax代表什么?

如果[]使用MOV指令,我认为这意味着将驻留在内存地址的数据复制到它的目的地。如果是这样,您如何将eax中的任何内容复制到edx中的数据值?

1 个答案:

答案 0 :(得分:15)

这是英特尔汇编语法。在Intel汇编语法中,目标始终是第一个操作数,其余操作数是源操作数。 x86的另一种常用汇编语法是AT& T,但由于Intel和AT& T语法看起来非常不同,因此很容易区分。

mov [edx],eaxeax的值存储在内存中,存储在edx中给出的地址中(以小端字节顺序排列)。

mov eax,[edx]完全相反,从edx中给出的地址读取存储器中存储的值,并将其存储在eax中。

[reg]总是意味着间接寻址,就像C中的指针*reg一样。

要将eax的内容复制到edx,您只需要mov edx,eax。 Destination是第一个操作数,source是第二个操作数。