ВУЗ:
Составители:
Рубрика:
Приведенный выше пример с помощью одной из этих команд
можно продублировать так:
Пример 2 — Программа цикла с использованием LOOP:
MOV CX, 0100; Загрузить в CX число 256
10
.
M1: LOOP M1 ; Уменьшить содержимое CX на единицу, и
если CX = 0, то перейти на метку М1.
Характеристика команды типа LOOP:
1) адрес короткий; самый длинный переход: ± 127
10
адресов;
2) адрес в ассемблере — прямой; адрес в машинном коде —
смещение со знаком в дополнительном коде (относительная адресация);
3) команда типа LOOP на флажки не воздействует (в отличие от
команды DEC в примере 1) ;
4) команда двухбайтовая: КОП – 1 байт и смещение – 1 байт.
Существует четыре разновидности этой команды. Ниже приведен
обобщенный код операции:
В таблице 9 приведены данные для синтеза команды с указанием
условий переходов (в скобках - альтернативное обозначение ассемблера).
Из таблицы 9 следует, что если две верхних команды в качестве
условия используют только состояние счетчика СX, то в двух нижних
строках таблицы переход может состояться при одновременном
выполнении двух условий. Только один маленький пример
использования команды с двойным условием.
Таблица 9 — Циклические команды
Тип
команды
Ассемблер Условия перехода
Счетчик:<CX>-
1
11
JCXZ M1
Перейти на адрес М1, если CX=0 Нет
10
LOOP M1
Перейти на адрес М1, если CX≠0
Есть
01
LOOPZ M1
(LOOPE M1)
Перейти на адрес М1, если CX≠0 и Z=1
(конъюнкция)
Есть
00
LOOP NZ M1
(LOOP NE) M1
Перейти на адрес М1, если CX≠0 и Z=0
(конъюнкция)
Есть
Пример 3 — Пусть в ОЗУ находится массив данных длиной в
256
10
байт, начиная с адреса 0500. Составить программу просмотра
58
Приведенный выше пример с помощью одной из этих команд
можно продублировать так:
Пример 2 — Программа цикла с использованием LOOP:
MOV CX, 0100; Загрузить в CX число 25610.
M1: LOOP M1 ; Уменьшить содержимое CX на единицу, и
если CX = 0, то перейти на метку М1.
Характеристика команды типа LOOP:
1) адрес короткий; самый длинный переход: ± 12710 адресов;
2) адрес в ассемблере — прямой; адрес в машинном коде —
смещение со знаком в дополнительном коде (относительная адресация);
3) команда типа LOOP на флажки не воздействует (в отличие от
команды DEC в примере 1) ;
4) команда двухбайтовая: КОП – 1 байт и смещение – 1 байт.
Существует четыре разновидности этой команды. Ниже приведен
обобщенный код операции:
В таблице 9 приведены данные для синтеза команды с указанием
условий переходов (в скобках - альтернативное обозначение ассемблера).
Из таблицы 9 следует, что если две верхних команды в качестве
условия используют только состояние счетчика СX, то в двух нижних
строках таблицы переход может состояться при одновременном
выполнении двух условий. Только один маленький пример
использования команды с двойным условием.
Таблица 9 — Циклические команды
Тип Счетчик:-
Ассемблер Условия перехода
команды 1
11
JCXZ M1 Перейти на адрес М1, если CX=0 Нет
10
LOOP M1 Перейти на адрес М1, если CX≠0 Есть
LOOPZ M1 Перейти на адрес М1, если CX≠0 и Z=1
01 Есть
(LOOPE M1) (конъюнкция)
LOOP NZ M1 Перейти на адрес М1, если CX≠0 и Z=0
00 Есть
(LOOP NE) M1 (конъюнкция)
Пример 3 — Пусть в ОЗУ находится массив данных длиной в
25610 байт, начиная с адреса 0500. Составить программу просмотра
58
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »
