ВУЗ:
Составители:
Рубрика:
Порядок выполнения команды.
1) Загрузка прерванного адреса CS:IP в стек как в п.8.2.1:
Stack : = <CS>; Stack : = <IP>.
Адрес новой вершины стека:
SP = <SP>-4.
2) Переход на новый адрес в новом сегменте происходит как в п.5
главы 7 для команды JMP:
IP:=[dst=<M
Addr
>]; CS:=[dst=<M
Addr+2
>].
Подводя итог, можно отметить, что однотипные команды JMP и CALL
полностью совпадают по своим действиям в части перехода, но в отличие от
команды JMP команда CALL перед переходом отправляет в стек адрес возврата
в программу, то есть адрес команды, следующей за командой CALL.
9. Команды условного перехода для организации циклов
Программный прием, именуемый циклом, является одним из самых
востребованных. Суть организации цикла можно пояснить на следующем
примере:
Пример 1 — Пусть имеет место фрагмент программы:
MOV CX, 0100 ; Загрузить в CX число 256
10
.
M1: DEC CX ; Уменьшить содержимое CX на единицу, и
JNZ M1 ; если CX ≠ 00, то снова перейти на команду DEC CX
(метка М1).
Здесь вместо адреса перехода, так как программа не транслирована
(еще нет ни машинных кодов, ни адресов), ставим метку М1. Очевидно,
что число циклов здесь 256. И пока цикл не выработается, программа
дальше не пойдет.
Поскольку циклы — это часто используемый прием (организация
таймера, задержек, перебора данных и тому подобное), то в МП
8086 реализована специальная группа команд-циклов под общим
названием LOOP Address (loop — делать петлю). Эти команды организует
цикл по умолчанию только в CX. И прекращается цикл тогда, когда CX
«обнулится» (за исключением одной команды).
57
Порядок выполнения команды. 1) Загрузка прерванного адреса CS:IP в стек как в п.8.2.1: Stack : =; Stack : = . Адрес новой вершины стека: SP = -4. 2) Переход на новый адрес в новом сегменте происходит как в п.5 главы 7 для команды JMP: IP:=[dst= ]; CS:=[dst= ]. Подводя итог, можно отметить, что однотипные команды JMP и CALL полностью совпадают по своим действиям в части перехода, но в отличие от команды JMP команда CALL перед переходом отправляет в стек адрес возврата в программу, то есть адрес команды, следующей за командой CALL. 9. Команды условного перехода для организации циклов Программный прием, именуемый циклом, является одним из самых востребованных. Суть организации цикла можно пояснить на следующем примере: Пример 1 — Пусть имеет место фрагмент программы: MOV CX, 0100 ; Загрузить в CX число 25610. M1: DEC CX ; Уменьшить содержимое CX на единицу, и JNZ M1 ; если CX ≠ 00, то снова перейти на команду DEC CX (метка М1). Здесь вместо адреса перехода, так как программа не транслирована (еще нет ни машинных кодов, ни адресов), ставим метку М1. Очевидно, что число циклов здесь 256. И пока цикл не выработается, программа дальше не пойдет. Поскольку циклы — это часто используемый прием (организация таймера, задержек, перебора данных и тому подобное), то в МП 8086 реализована специальная группа команд-циклов под общим названием LOOP Address (loop — делать петлю). Эти команды организует цикл по умолчанию только в CX. И прекращается цикл тогда, когда CX «обнулится» (за исключением одной команды). 57
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »