ESP做栈基址?

godss 2007-03-18 10:18:04
反汇编一个程序,发现里面全是用ESP做的栈基地址,找调用栈都不好找。在调用的API里面是用的正常的EBP,请问这是怎么回事啊?
...全文
263 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng1976 2007-03-20
  • 打赏
  • 举报
回复
好多人不都是这样搞得吗?
看个汇编的例子就是啊
combojiang 2007-03-19
  • 打赏
  • 举报
回复
同意楼上
zara 2007-03-19
  • 打赏
  • 举报
回复
用 esp 而不是 ebp, 这个是些高级语言的做法吧. 目的应该是为了增加 ebp 作为寄存器类变量. 由于在函数/子程用会有不少的堆栈操作, 所以, 汇编程序以 esp 来作为指针访问参数或局部变换都不是很合适, 计算当前 esp 和原始值是个比较头痛的事儿. 但这个如果由编译器来做的话, 就很简单了, 它只要设置一个变量, 遇到 push/pop 操作就对其进行调整, 最后再引用参数或局部变量时进行校正就可以了
godss 2007-03-19
  • 打赏
  • 举报
回复
更正一下,也不是用ESP做的栈基地址,ESP依然指向栈顶,局部变量都是用ESP+一个数来寻址的,不象普通的以EBP-来找的。
另外这样做的高级语言是哪些啊?VC不是这样的。
ciahi 2007-03-18
  • 打赏
  • 举报
回复
不是吧~~~
都是用Ebp做栈基址的呀

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧