Possible Duplicate:
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之前)
提前致谢

最佳答案

我的猜测:不需要框架,因此没有在getesp中分配。具体情况取决于您使用的编译器和编译器标志。

08-16 11:33