Используются при реализации циклов с различными условиями в алгоритмах.
Формат команды:
LOOP <Метка>
Исполнение команды: Производится декремент (уменьшение на 1) содержимого регистра CX и, если CX не равен 0, происходит переход к началу цикла. Регистр флажков не модифицируется.
Команды управления циклами всегда имеют атрибут NEAR . Операнд - метка является 8-битным смещением (относительно текущего состояния указателя команд IP), поэтому команды могут выполнить переход только на 127 байт вперед или на 128 байт назад.
Выполнение команды цикла с условием показано на рис.22.
Команда LOOP имеет несколько модификаций:
1) Команды LOOPE (LOOPZ) <метка>
Исполняют декремент регистра CX и, если CX не равен 0, а флажок ZF равен 1, происходит переход к началу цикла. Длина команд равна 2 байтам, а время выполнения - 6 тактам (без перехода) и 18 (с переходом). Регистр флажков не модифицируется.
2) Команды LOOPNE (LOOPNZ) <метка>
Исполняют декремент регистра CX и, если CX не равен 0, а флажок ZF равен 0, происходит переход к началу цикла. Длина команд равна 2 байтам, а время выполнения - 6 тактам (без перехода) и 18 (с переходом). Регистр флажков не модифицируется.