Почему сохраненный указатель кадра присутствует в кадре стека?

Я прочитал, что SFP используется для восстановления EBP к его предыдущему значению. Почему EBP необходимо вернуться к своему первоначальному значению?

1 ответ

Решение

Почему EBP необходимо вернуться к своему первоначальному значению?

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

Значение EBP восстанавливается, когда функция возвращает o, что она может обслуживать вызов функции предыдущей функции.

Другие вопросы по тегам