Почему сохраненный указатель кадра присутствует в кадре стека?
Я прочитал, что SFP используется для восстановления EBP к его предыдущему значению. Почему EBP необходимо вернуться к своему первоначальному значению?
1 ответ
Решение
Почему EBP необходимо вернуться к своему первоначальному значению?
Когда выполняется вызов функции, компилятор, как правило, первым делом для тела функции помещает текущее значение EBP в стек и устанавливает EBP (базовый указатель / указатель кадра) на текущий ESP (указатель стека, всегда указывающий на вершину стека). Затем EBP используется для доступа к локальным переменным и аргументам функции.
Значение EBP восстанавливается, когда функция возвращает o, что она может обслуживать вызов функции предыдущей функции.