ATT 语法。
我注意到 C 中的库例程经常使用以下汇编代码片段:
call next
next:
popl %eax
- %eax 存储在这里的值是什么,为什么它会被弹出?
- 这个片段的目的是什么?
它为您提供程序计数器 (PC) 的当前值。也就是说,您将获得当前正在执行的指令的地址。
这是一篇有趣的文章,讨论了使用该片段与使用 C 进行操作:http: //blogs.msdn.com/b/oldnewthing/archive/2004/12/16/317157.aspx
在这一系列指令之后 %eax 的值是多少?
调用下一个
下一个:popl %eax
无论下一个地址是什么
(popl指令所在的内存地址) 注意:这不是PC,但与PC有关
– PC 是要执行的下一条指令的地址;%eax 现在有最近执行的指令的地址(popl)