###
Команды управления
циклами - это
близкие (NEAR)
относительные
переходы. Операнд - метка является 8-битным
смещением (относительно
текущего состояния указателя команд IP), поэтому команды могут
выполнить
переход только на 127 байт вперед или на 128 байт назад.
### Команда
LOOP#########################################################
### Производит декремент регистра CX и, если CX не равен
0, происходит
переход к началу цикла.
### Регистр флажков не модифицируется.
### Формат команды:
7
0
+-------------------------+ l = 2 байта
+----------------+
¦ LOOP Метка
¦ t1 = 5 тактов
¦ 11100010
¦
+-------------------------+
(без перехода)
¦----------------¦
t2 = 17 тактов
¦
dispL ¦
(с переходом)
+----------------+
### Примечание:
Команда эквивалентна последовательности DEC и
JNZ, но экономит байт
памяти и один цикл времени.
### Команды LOOPE /
LOOPZ
#############################################
### Производят декремент регистра CX и, если
CX не равен 0, а флажок
ZF равен 1, происходит переход к началу
цикла.
Длина команд равна 2 байтам, а
время выполнения - 6
тактам (без
перехода) и 18 (с переходом).
### Регистр флажков не модифицируется.
### Форматы команд:
7
0
+-------------------------+
+----------------+
¦ LOOPE Метка
¦
¦ 11100001
¦
+-------------------------+
¦----------------¦
+-------------------------+
¦
dispL ¦
¦ LOOPZ Метка
¦
+----------------+
+-------------------------+
### Команды LOOPNE /
LOOPNZ
#############################################
### Производят декремент регистра CX и, если
CX не равен 0, а флажок
ZF равен 0, происходит переход к началу
цикла.
Длина команд равна 2 байтам, а
время выполнения - 6
тактам (без
перехода) и 18 (с переходом).
### Регистр флажков не модифицируется.
### Форматы команд:
7
0
+-------------------------+
+----------------+
¦ LOOPNE Метка
¦
¦ 11100000
¦
+-------------------------+
¦----------------¦
+-------------------------+
¦
dispL ¦
¦ LOOPNZ Метка
¦
+----------------+
+-------------------------+
|