我可以将带有间接操作数的mov
同时用作源和目标吗?
例如
mov eax, OFFSET foo
mov esi, OFFSET bar
mov [eax],[esi + LENGTHOF bar]
从我尝试的内容来看,我猜由于invalid instruction operand
错误,您不能。但是我没有读过任何明确指出你不能的地方,所以我想确保这不是由于其他错误。
x86 mov
指令不支持内存到内存的移动。
看看第2卷:指令集参考,即MOV
指令。 有reg <- reg
、mem <- reg
和reg <- mem
形式,但没有mem <- mem
。
要将数据从内存移动到内存,必须使用中间寄存器或movs
指令,该指令将值从地址DS:ESI
移动到ES:EDI
。这就是这些寄存器被命名为(源索引和目标索引)的原因。