Следующее изображение из википедии entry на стеке вызовов и есть то, что я совершенно не понимаю:Кадра указатель, EPB, и обратный адрес
Я думал указатель кадра, который хранится в EBP регистр инициализируется как таковой в прологе *:
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.
Если это так, то не следует указатель кадра в изображении указывать на после обратного адреса и, прежде чем он должен быть предыдущий кадр ро inter address и перед этим обратный адрес? Что мне не хватает?
Спасибо!
* Взято из: What is exactly the base pointer and stack pointer? To what do they point?
Спасибо - это означает, что esp фактически не указывает на верхнюю часть стека, а на последний элемент в стеке? – SpeksETC
@SpeksETC: последний элемент находится наверху стека – Abyx