Файл: 12. Передача параметров через стек. Локальные данные подпрограмм.pdf
Добавлен: 30.10.2018
Просмотров: 464
Скачиваний: 9
2-я лок.
перем.
1-я лок.
перем.
старый
EBP
адрес
возврата
. . . . . параметры
стековая память
Доступ к локальным переменным – по выражению [EBP – 4] или [EBP –
8]. В конце подпрограммы надо выполнить обратные действия:
MOV ESP, EBP ; отказ от локальной памяти
POP EBP ; восстановить старое значение EBP
RET ; или RET N, если необходимо
Данный механизм является основой реализации рекурсивных вызовов в
ассемблерных программах. Главное правило - для локальных переменных
рекурсивной подпрограммы использовать стек с правильной его очисткой при
выходе. Кроме того, при каждом очередном входе в рекурсивную
подпрограмму надо сохранять содержимое всех использующихся в
подпрограмме регистров и восстанавливать их при выходе
Практические задания к теме №12.
Задание 1. Оформить подпрограмму обнуления N байтов в массиве с
начальным адресом Mas. Входные параметры - адрес массива и количество
обнуляемых байтов – передаются через стек
EBP - 4
EBP - 8