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

关于EBP寄存器的有关问题

2012-06-09 
关于EBP寄存器的问题过程开始时,都要先执行push ebpmov ebp, esp为什么一定要保存ebp的值呢?我知道因为第

关于EBP寄存器的问题
过程开始时,都要先执行
push ebp
mov ebp, esp
为什么一定要保存ebp的值呢?我知道因为第二句ebp要被重新赋值为esp的值,但是在赋值之前,ebp的值有什么意义呢?
如果没有意义,为什么还要保存?

[解决办法]
当然要保存ebp啊,因为你这个函数可能是别的函数调用的,不保存的话调用的你那个函数的ebp就改变了
[解决办法]
ebp寄存器用来存取堆栈里的变量,比如参数,局部变量等

在赋值之前ebp保存的是上一层函数的堆栈指针,以便函数退出时恢复,如果不保存,将覆盖上一层函数的堆栈指针

热点排行