1

ATT 语法。

我注意到 C 中的库例程经常使用以下汇编代码片段:

call next
next:
popl %eax
  • %eax 存储在这里的值是什么,为什么它会被弹出?
  • 这个片段的目的是什么?
4

2 回答 2

2

它为您提供程序计数器 (PC) 的当前值。也就是说,您将获得当前正在执行的指令的地址。

这是一篇有趣的文章,讨论了使用该片段与使用 C 进行操作:http: //blogs.msdn.com/b/oldnewthing/archive/2004/12/16/317157.aspx

于 2013-01-31T01:06:31.003 回答
1

在这一系列指令之后 %eax 的值是多少?

调用下一个

下一个:popl %eax

无论下一个地址是什么

(popl指令所在的内存地址) 注意:这不是PC,但与PC有关

– PC 是要执行的下一条指令的地址;%eax 现在有最近执行的指令的地址(popl)

于 2013-01-31T01:08:55.513 回答