Файл: 12. Передача параметров через стек. Локальные данные подпрограмм.pdf

ВУЗ: Не указан

Категория: Учебное пособие

Дисциплина: Программирование

Добавлен: 30.10.2018

Просмотров: 464

Скачиваний: 9

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

 

2-я лок. 

перем. 

1-я лок. 

перем. 

старый 

EBP 

адрес 

возврата 

. . . . .  параметры   

 

стековая память 

 

 

 

Доступ к локальным переменным – по выражению [EBP – 4] или [EBP – 

8]. В конце подпрограммы надо выполнить обратные действия: 

MOV   ESP, EBP  ; отказ  от локальной памяти 

POP    EBP           ; восстановить старое значение EBP 

RET                      ; или RET   N,  если необходимо 

 

Данный  механизм  является  основой  реализации  рекурсивных  вызовов  в 

ассемблерных  программах.  Главное  правило  -  для  локальных  переменных 

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

выходе.  Кроме  того,  при  каждом  очередном  входе  в  рекурсивную 

подпрограмму  надо  сохранять  содержимое  всех  использующихся  в 

подпрограмме регистров и восстанавливать их при выходе 

 

Практические задания к теме №12. 

Задание 1. Оформить подпрограмму обнуления N байтов в массиве с 

начальным адресом Mas. Входные параметры - адрес массива и количество 

обнуляемых байтов – передаются через стек 

 

EBP - 4 

EBP - 8