Существует несколько команд условного перехода, предназначенных для
управления циклами в программах. Поскольку программые циклы
используются часто, желательно эффективное управление циклом. На
Фиг. 4.30 показаны четыре команды, созданные для того, чтобы
облегчить программирование циклов на языке ассемблера
микропроцессора 8088.
Так же, как строковые команды используют регистр CX в качестве
счетчика, команды цикла LOOP используют регистр CX в качестве
счетчика цикла. Все эти команды неявно рассматривают регистр CX как
счетчик итераций цикла. Простейшая команда среди них - команда
LOOP. Команда LOOP уменьшает регистр CX и передает управление на
метку, если содержимое регистра CX не равно 0. Если вычитание
единицы из регистра CX не привело к нулевому результату, команда
LOOP не делает перехода, и выполняется следующая команда.
Приведенный ниже программный фрагмент демонстрирует обычное
использование команды LOOP.
MOV CX,LOOP_COUNT
BEGIN_LOOP:
; ... тело цикла
LOOP BEGIN_LOOP
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:02:01
Фиг. 4.30 Команды цикла Page 1-1
PAGE ,132
TITLE Фиг. 4.30 Команды цикла
0000 CODE SEGMENT
ASSUME CS:CODE
;----------------------------------------
; В этом примере демонстрируются команды цикла.
; Команды в примере не являются законченной программой.
;----------------------------------------
0000 E3 06 JCXZ END_OF_LOOP ; Конец цикла, если CX равно 0