Основные команды языка ASSEMBLER
### Команды управления циклами - это близкие (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 Метка ¦ +----------------+
+-------------------------+
[ ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ ]
|