【问题标题】:mov %eax,(%esp)mov %eax,(%esp)
【发布时间】:2012-10-10 07:00:53
【问题描述】:

以下语句有什么区别?

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

我正在处理二进制炸弹的扩散,但在程序集的早期,我遇到了一些 movleal 命令的问题。

【问题讨论】:

  • 一个复制寄存器。其他从它指向的内存中加载。
  • @Mysticial:这是 AT&T 语法,所以一切都是倒退的——%esp 和 (%esp) 是目的地,而不是来源。
  • @JerryCoffin 啊啊啊啊!!!我总是陷入那个陷阱......

标签: assembly x86 att mov addressing-mode


【解决方案1】:

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

mov %eax,%esp

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

mov %eax,(%esp)

【讨论】:

  • 后者本质上是pop eax,没有esp的递减
猜你喜欢
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 2016-05-29
  • 1970-01-01
  • 2011-08-23
相关资源
最近更新 更多