В шаге "Шаг 13 - Организация цикла" мы уже посмотрели как можно организовать цикл по счетчику. Есть более простой способ организации цикла используя команду LOOP - эта команда выглядит так:
LOOP метка
Она будет переводить нас на указанную метку до тех пор пока регистр CX не станет равный нулю. Эта способность и позволяет нам организовать цикл. Смотрим пример.
MODEL SMALL STACK 256 DATASEG str1 DB 'LOOP $' CODESEG Start: mov ax,@data ; установка в ds адpеса mov ds,ax ; сегмента данных mov cl,3 ; настройка счетчика mov dx,OFFSET str1 ; адрес строки WriteLoop: CALL WriteStr loop WriteLoop Exit: CALL ExitProgramm INCLUDE function.asm End Start
У нас 3 раза должны быть показана строка, в самом начале мы задаем количество циклов в регистре CL.
mov cl,3 ; настройка счетчика
В тот момент кода программа подойдет к LOOP вы увидите направления в отладчике
А сразу после команды ( тут нужна клавиша F7 - Trace Info) регистр CX будет уменьшен на единицу.
Вот так оно и работает. Дошли до LOOP, если регистр CX не ноль то перешли по метке и уменьшили его, а как только он 0 пошли дальше.