标签: c assembly x86 inline-assembly
可能重复: executing assembly within a function in c++
long getesp() { __asm__("movl %esp,%eax"); } void main() { printf("%08X\n",getesp()+4); }
为什么打印esp是在堆栈设置之前?(在pushl%ebp之前,movl%esp,%ebp) 提前谢谢
答案 0 :(得分:1)
我的猜测:不需要框架,因此没有在getesp中分配。详细信息取决于您使用的编译器和编译器标志。