2012-10-19 214 views
8

以下语句有什么区别?mov%eax,(%esp)

mov %eax,%esp 
mov %eax,(%esp) 

我正在扩散二进制炸弹时遇到与装配几个movleal命令的早期故障。

+1

一份拷贝寄存器。另一个来自它指向的内存的加载。 – Mysticial

+4

@Mysticial:这是AT&T语法,所以一切都是倒退 - %esp和(%esp)是目的地,而不是来源。 –

+0

@JerryCoffin AHHHH !!!我总是陷入那个陷阱...... – Mysticial

回答

10

这会将%eax中的值复制到%esp中。

mov %eax,%esp 

将%eax的值复制到%esp指向的内存中的位置。

mov %eax,(%esp) 
+0

非常感谢你! – arc

+0

后者本质上是pop eax,没有esp的递减 – Goaler444

相关问题