Описание процессора i8086 для программиста

       

LOOP/LOOPcc – цикл по счётчику в регистре CX


E2 cb

LOOP rel8

цикл по счётчику

E1 cb

LOOPE rel8



цикл по счётчику и равенству

E1 cb

LOOPZ rel8

цикл по счётчику и нулевому результату

E0 cb

LOOPNE rel8

цикл по счётчику и неравенству

E0 cb

LOOPNZ rel8

цикл по счётчику и ненулевому результату

Описание.

Команда LOOP

позволяет организовать цикл по счётчику, находящемуся в регистре CX.

Счётчик, в качестве которого всегда используется регистр CX, уменьшается на единицу. Если после этого счётчик не равен нулю, а дополнительное условие, если оно имеется, выполнено, производится переход на указанную команду. Если счётчик достиг нуля или если дополнительное условие не выполнено, переход не совершается.

Дополнительным условием продолжения выполнения цикла может быть нахождение флажка ZF в состоянии 0 (LOOPNE, LOOPNZ) или 1 (LOOPE, LOOPZ). Благодаря наличию такого условия упрощается программирование циклического анализа или сравнения каких-либо величин, когда условием завершения цикла является либо достижение конца обрабатываемых операндов (обнуление счётчика), либо выполнение условия неравенства или равенства, ненулевого или нулевого результата (установка флажка ZF в состояние 0 или 1).

Команда LOOP позволяет осуществлять только короткие переходы, поскольку в ней используется относительная адресация с 8-разрядным отклонением.

Флажки не изменяются.



Содержание раздела