首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

ESP做栈基址?该怎么解决

2012-03-20 
ESP做栈基址?反汇编一个程序,发现里面全是用ESP做的栈基地址,找调用栈都不好找。在调用的API里面是用的正常

ESP做栈基址?
反汇编一个程序,发现里面全是用ESP做的栈基地址,找调用栈都不好找。在调用的API里面是用的正常的EBP,请问这是怎么回事啊?

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

热点排行