当前位置: 代码迷 >> 汇编语言 >> 关于EBP寄存器的有关问题
  详细解决方案

关于EBP寄存器的有关问题

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

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

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