当前位置: 代码迷 >> 汇编语言 >> ESP做栈基址?该怎么解决
  详细解决方案

ESP做栈基址?该怎么解决

热度:6257   发布时间:2013-02-26 00:00:00.0
ESP做栈基址?
反汇编一个程序,发现里面全是用ESP做的栈基地址,找调用栈都不好找。在调用的API里面是用的正常的EBP,请问这是怎么回事啊?

------解决方案--------------------------------------------------------
用 esp 而不是 ebp, 这个是些高级语言的做法吧. 目的应该是为了增加 ebp 作为寄存器类变量. 由于在函数/子程用会有不少的堆栈操作, 所以, 汇编程序以 esp 来作为指针访问参数或局部变换都不是很合适, 计算当前 esp 和原始值是个比较头痛的事儿. 但这个如果由编译器来做的话, 就很简单了, 它只要设置一个变量, 遇到 push/pop 操作就对其进行调整, 最后再引用参数或局部变量时进行校正就可以了
  相关解决方案