过程开始时,都要先执行
push ebp
mov ebp, esp
为什么一定要保存ebp的值呢?我知道因为第二句ebp要被重新赋值为esp的值,但是在赋值之前,ebp的值有什么意义呢?
如果没有意义,为什么还要保存?
------解决方案--------------------------------------------------------
当然要保存ebp啊,因为你这个函数可能是别的函数调用的,不保存的话调用的你那个函数的ebp就改变了
------解决方案--------------------------------------------------------
ebp寄存器用来存取堆栈里的变量,比如参数,局部变量等
在赋值之前ebp保存的是上一层函数的堆栈指针,以便函数退出时恢复,如果不保存,将覆盖上一层函数的堆栈指针