Содержание
- 2. Ассемблер Intel 8086 Подпрограммы: связь по управлению Для организации связи по управлению в Intel 8086 используется
- 3. Ассемблер Intel 8086 Подпрограммы: связь по данным Для организации связи по данным используются регистры, глобальные переменные
- 4. Ассемблер Intel 8086 Подпрограммы: связь по данным Параметры в подпрограмму могут передаваться по значению и по
- 5. Ассемблер Intel 8086 Подпрограммы: связь по данным Обращение к параметрам подпрограммы организуется через регистры BP и
- 6. Ассемблер Intel 8086 Подпрограммы: связь по данным Обращение к параметрам подпрограммы: параметры, переданные по значению: в
- 8. Скачать презентацию
Слайд 2
Ассемблер Intel 8086
Подпрограммы: связь по управлению
Для организации связи по управлению в
Ассемблер Intel 8086
Подпрограммы: связь по управлению
Для организации связи по управлению в
Intel 8086 используется стек, в котором хранится адрес возврата, а также команды вызова подпрограммы (CALL) и выхода из подпрограммы (RET).
Слайд 3
Ассемблер Intel 8086
Подпрограммы: связь по данным
Для организации связи по данным используются
Ассемблер Intel 8086
Подпрограммы: связь по данным
Для организации связи по данным используются
регистры, глобальные переменные и стек.
При использовании стека параметры записываются с помощью команды PUSH непосредственно перед вызовом подпрограммы.
ВАЖНО: после окончания работы подпрограммы необходимо удалить из стека переданные подпрограмме параметры.
Удалить параметры из стека можно следующими способами:
подпрограмма сама удаляет параметры из стека: используется команда RET с параметром, в котором указывается, сколько байтов из стека необходимо удалить;
вызывающая программа сама очищает стек:
используется последовательность команд POP (количество команд равно количеству слов, помещённых в стек);
используется команда ADD SP, NumBytes , в которой параметр NumBytes равен количеству байтов, помещённых в стек.
При использовании стека параметры записываются с помощью команды PUSH непосредственно перед вызовом подпрограммы.
ВАЖНО: после окончания работы подпрограммы необходимо удалить из стека переданные подпрограмме параметры.
Удалить параметры из стека можно следующими способами:
подпрограмма сама удаляет параметры из стека: используется команда RET с параметром, в котором указывается, сколько байтов из стека необходимо удалить;
вызывающая программа сама очищает стек:
используется последовательность команд POP (количество команд равно количеству слов, помещённых в стек);
используется команда ADD SP, NumBytes , в которой параметр NumBytes равен количеству байтов, помещённых в стек.
Слайд 4
Ассемблер Intel 8086
Подпрограммы: связь по данным
Параметры в подпрограмму могут передаваться по
Ассемблер 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
Передача параметров по значению:
mov AX, 10
push AX
add AX, 20
push AX
call MyProc1
Передача параметров по ссылке (в стек помещается адрес фактического параметра):
mov AX, OFFSET ArrayOfWords
add AX, SI
push AX
call MyProc2
Слайд 5
Ассемблер Intel 8086
Подпрограммы: связь по данным
Обращение к параметрам подпрограммы организуется через
Ассемблер Intel 8086
Подпрограммы: связь по данным
Обращение к параметрам подпрограммы организуется через
регистры BP и SP.
Процедуру рекомендуется оформлять следующим образом:
заголовок процедуры:
MyProc proc
настройка регистра BP:
push BP
mov BP, SP
сохранение регистров необходимо, если подпрограмма изменяет содержимое регистров, а их значения потребуются вызывающей программе;
работа подпрограммы, обращение к параметрам подпрограммы;
восстановление регистров, если их значения были сохранены в начале подпрограммы; восстановление регистра BP
pop BP
выход из подпрограммы:
ret N
где N – количество байтов, которые необходимо удалить из стека перед возвратом из подпрограммы.
Процедуру рекомендуется оформлять следующим образом:
заголовок процедуры:
MyProc proc
настройка регистра BP:
push BP
mov BP, SP
сохранение регистров необходимо, если подпрограмма изменяет содержимое регистров, а их значения потребуются вызывающей программе;
работа подпрограммы, обращение к параметрам подпрограммы;
восстановление регистров, если их значения были сохранены в начале подпрограммы; восстановление регистра BP
pop BP
выход из подпрограммы:
ret N
где N – количество байтов, которые необходимо удалить из стека перед возвратом из подпрограммы.
Слайд 6
Ассемблер Intel 8086
Подпрограммы: связь по данным
Обращение к параметрам подпрограммы:
параметры, переданные по
Ассемблер Intel 8086
Подпрограммы: связь по данным
Обращение к параметрам подпрограммы:
параметры, переданные по
значению:
в стек были записаны значения, с которыми можно сразу работать:
mov AX, [BP+6] ; загрузка значения параметра в регистр AX
параметры, переданные по ссылке:
в стек были записаны адреса, по которым расположены фактические параметры, поэтому для доступа к значениям будет использоваться, например, следующая последовательность операторов:
mov BX, [BP+8] ; загрузка адреса параметра в регистр BX
mov AX, [BX] ; загрузка значения этого параметра в регистр AX
в стек были записаны значения, с которыми можно сразу работать:
mov AX, [BP+6] ; загрузка значения параметра в регистр AX
параметры, переданные по ссылке:
в стек были записаны адреса, по которым расположены фактические параметры, поэтому для доступа к значениям будет использоваться, например, следующая последовательность операторов:
mov BX, [BP+8] ; загрузка адреса параметра в регистр BX
mov AX, [BX] ; загрузка значения этого параметра в регистр AX
- Предыдущая
Ассемблер Intel 8086 Следующая -
Понятие деловое общение