Я обнаружил, что регистр ESP является текущим указателем стека, а EBP - базовым указателем для текущего кадра стека. Однако я не понимаю этих определений (я только начинаю учиться программировать на ассемблере).
Я понимаю, что ESP указывает на сам стек, а EBP указывает на то, что находится наверху стека 1. Но это только мои предположения и, скорее всего, они неверны. В противном случае, что означало бы следующее утверждение?
MOV EBP, ESP
Сноска 1: Примечание редактора: Да, это неверно. В стандартной терминологии «вершина стека» - это точка, на которую указывает ESP, даже если это самый низкий адрес в кадре стека. По аналогии со структурой данных стека, которая растет вверх, хотя стек вызовов на x86 (как и большинство ISA) растет вниз.