ebp可访问整个堆栈esp只能访问栈顶这两句话该如何去理解/
时间:2011-01-22
来源:互联网
ebp可访问整个堆栈esp只能访问栈顶这两句话该如何去理解/
谢谢给个通俗点儿的解释,.,..
谢谢给个通俗点儿的解释,.,..
作者: lloveyou520 发布时间: 2011-01-22
这句话本来就不对,ebp和esp的主要区别在于:一个函数内部ebp指向的是函数入口处栈指针,而esp是当前指令的栈指针,所以一般来说,esp是变化的,他随着push,pop,add esp,0xXX,sub esp,0xXX等的指令的变化而变化,但在一个函数内部ebp通常是不变的(除非人为的用汇编指令对ebp操作),所以通常用ebp来保存函数内部的参数,局部变量等重要的内容(由于esp可变,不能用esp访问),并且在函数结束的时候将ebp的值赋值给esp来维持栈的平衡。
实际上ebp和esp都能访问到整个栈的内容,但是由于esp的可变性,通常并不用esp来访问,而用ebp访问。
实际上ebp和esp都能访问到整个栈的内容,但是由于esp的可变性,通常并不用esp来访问,而用ebp访问。
作者: chzhn 发布时间: 2011-01-22
楼上正解
作者: masmaster 发布时间: 2011-01-22
很通俗的说就是,任何可以自由访问内存的寄存器都可访问整个堆栈,只不过ebp不需要段前缀了,所以都用ebp访问堆栈内的数据。至于esp,esp要指向栈顶,也就是说,esp的活动受出入栈指令的影响,用起来肯定不方便,其实esp也可以访问整个堆栈的,只不过这样弄就是自己找别扭了
作者: Simbon 发布时间: 2011-01-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28