Разделы презентаций


Ассемблер Intel 8086 Подпрограммы

Ассемблер Intel 8086Подпрограммы: связь по управлениюДля организации связи по управлению в Intel 8086 используется стек, в котором хранится адрес возврата, а также команды вызова подпрограммы (CALL) и выхода из подпрограммы (RET).

Слайды и текст этой презентации

Слайд 1Ассемблер Intel 8086
Подпрограммы

Подпрограмма – это помеченный модуль программы, синтаксически оформленный

по правилам какой-либо системы программирования так, что он может быть

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

Назначение подпрограмм:
программирование на более высоком уровне;
сокращение размеров программ.

Возникающие проблемы:
1) связь по управлению – проблема возврата в вызывающую программу (сохранение адреса возврата);
2) связь по данным – проблема обмена данными вызывающей программы и подпрограммы.

Ассемблер Intel 8086ПодпрограммыПодпрограмма – это помеченный модуль программы, синтаксически оформленный по правилам какой-либо системы программирования так, что

Слайд 2Ассемблер Intel 8086
Подпрограммы: связь по управлению

Для организации связи по управлению

в Intel 8086 используется стек, в котором хранится адрес возврата,

а также команды вызова подпрограммы (CALL) и выхода из подпрограммы (RET).


Ассемблер Intel 8086Подпрограммы: связь по управлениюДля организации связи по управлению в Intel 8086 используется стек, в котором

Слайд 3Ассемблер Intel 8086
Подпрограммы: связь по данным

Для организации связи по данным

используются регистры, глобальные переменные и стек.

При использовании стека параметры записываются

с помощью команды PUSH непосредственно перед вызовом подпрограммы.
ВАЖНО: после окончания работы подпрограммы необходимо удалить из стека переданные подпрограмме параметры.

Удалить параметры из стека можно следующими способами:
подпрограмма сама удаляет параметры из стека: используется команда RET с параметром, в котором указывается, сколько байтов из стека необходимо удалить;
вызывающая программа сама очищает стек:
используется последовательность команд POP (количество команд равно количеству слов, помещённых в стек);
используется команда ADD SP, NumBytes , в которой параметр NumBytes равен количеству байтов, помещённых в стек.
Ассемблер Intel 8086Подпрограммы: связь по даннымДля организации связи по данным используются регистры, глобальные переменные и стек.При использовании

Слайд 4Ассемблер Intel 8086
Подпрограммы: связь по данным

Параметры в подпрограмму могут передаваться

по значению и по ссылке.

Передача параметров по значению:
mov AX, 10
push

AX
add AX, 20
push AX
call MyProc1

Передача параметров по ссылке (в стек помещается адрес фактического параметра):
mov AX, OFFSET ArrayOfWords
add AX, SI
push AX
call MyProc2
Ассемблер Intel 8086Подпрограммы: связь по даннымПараметры в подпрограмму могут передаваться по значению и по ссылке.Передача параметров по

Слайд 5Ассемблер Intel 8086
Подпрограммы: связь по данным

Обращение к параметрам подпрограммы организуется

через регистры BP и SP.
Процедуру рекомендуется оформлять следующим образом:
заголовок процедуры:
MyProc

proc
настройка регистра BP:
push BP
mov BP, SP
сохранение регистров необходимо, если подпрограмма изменяет содержимое регистров, а их значения потребуются вызывающей программе;
работа подпрограммы, обращение к параметрам подпрограммы;
восстановление регистров, если их значения были сохранены в начале подпрограммы; восстановление регистра BP
pop BP
выход из подпрограммы:
ret N
где N – количество байтов, которые необходимо удалить из стека перед возвратом из подпрограммы.
Ассемблер Intel 8086Подпрограммы: связь по даннымОбращение к параметрам подпрограммы организуется через регистры BP и SP.Процедуру рекомендуется оформлять

Слайд 6Ассемблер Intel 8086
Подпрограммы: связь по данным

Обращение к параметрам подпрограммы:
параметры, переданные

по значению:
в стек были записаны значения, с которыми можно

сразу работать:
mov AX, [BP+6] ; загрузка значения параметра в регистр AX

параметры, переданные по ссылке:
в стек были записаны адреса, по которым расположены фактические параметры, поэтому для доступа к значениям будет использоваться, например, следующая последовательность операторов:
mov BX, [BP+8] ; загрузка адреса параметра в регистр BX
mov AX, [BX] ; загрузка значения этого параметра в регистр AX

Ассемблер Intel 8086Подпрограммы: связь по даннымОбращение к параметрам подпрограммы:параметры, переданные по значению: в стек были записаны значения,

Слайд 7Ассемблер Intel 8086
Подпрограммы: связь по данным

Правила вычисления смещения параметра подпрограммы

относительно регистра BP очевидны при рассмотрении следующего рисунка.
ВНИМАНИЕ! Если был

выполнен дальний вызов подпрограммы, то в стек заносится дополнительно значение сегментного регистра CS, поэтому для обращения к параметрам необходимо будет скорректировать смещения на 2.
Ассемблер Intel 8086Подпрограммы: связь по даннымПравила вычисления смещения параметра подпрограммы относительно регистра BP очевидны при рассмотрении следующего

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика