下图来自调用堆栈上的维基百科条目,有些我不完全理解:
我认为存储在 ebp 寄存器中的帧指针在 prologue* 中是这样初始化的:
push ebp ; Preserve current frame pointer
mov ebp, esp ; Create new frame pointer pointing to current stack top
sub esp, 20 ; allocate 20 bytes worth of locals on stack.
如果是这样,那么图像中的帧指针不应该指向返回地址之后,它应该是前一个帧指针地址,然后是返回地址吗?我错过了什么?
谢谢!