C调用栈使用" ebp"访问变量,然后" esp"好像多余了?

时间:2016-09-18 11:13:18

标签: function assembly x86 stackframe stack-pointer

C函数使用调用堆栈(堆栈帧)在函数调用之前/之后推送/弹出寄存器。如果ebp是用于访问堆栈上所有变量的帧指针,那么似乎esp是多余的?

那么为什么在函数调用的prolog / epilog中,我们运行esp和ebp? 如果我只使用一个寄存器来完成这项工作,那么任何不方便的地方?

感谢。

0 个答案:

没有答案