标签: cpu-registers machine-code stack-pointer
我读到SFP用于将EBP恢复到之前的值。为什么EBP需要恢复到它的初始值?
答案 0 :(得分:0)
为什么EBP需要恢复它的初始值?
当进行函数调用时,编译器通常作为函数体的第一件事,将当前的EBP值推送到堆栈并将EBP(基指针/帧指针)设置为当前的ESP(堆栈指针) ,总是指向堆栈的顶部)。然后EBP用于访问函数的局部变量和参数。
当函数返回o时,EBP的值将被恢复,它可以为前一个函数的函数调用提供服务。