mov [ebx + 0x18] ecx有什么作用?

时间:2016-12-28 13:19:14

标签: assembly x86

这条指令的作用是什么? 我不明白[ebx + 0x18]它在做什么? cos ebx不是一个地址它是一个寄存器所以请帮帮我^^

2 个答案:

答案 0 :(得分:3)

我认为指令是mov [ebx+0x18], ecx

这是Intel语法,其中方括号表示内部的值是解除引用,就像它是一个指针一样。在这种情况下,常量偏移0x18被添加到ebx寄存器中存储的值,然后将其解释为一个内存地址,然后解除引用。

因此,该指令将ecx中存储的值复制到ebx+0x18指向的内存中。

请注意,ebxecx寄存器的实际内容已修改 - 仅限地址ebx+0x18的内存。

答案 1 :(得分:3)

mov指令是这样的:

mov <destination>, <source>

因此,要将寄存器EBX设置为与ECX相同的值,您需要:

mov ebx, ecx

操作数周围的括号表示使用解除引用,即查看特定寄存器中的地址,并将其用作源或目标。要将EBX指向的内存中的位置设置为ECX:

的值
mov [ebx], ecx

最后,你可以在解除引用时做一些基本的算术。因此,要将位置0x18(或24)字节从EBX指向的位置向前设置为ECX的值:

mov [ebx + 0x18], ecx