Шаг 46 - Организация цикла и LOOP

В шаге "Шаг 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 вы увидите направления в отладчике

46_1.gif (2671 b)

А сразу после команды ( тут нужна клавиша F7 - Trace Info) регистр CX будет уменьшен на единицу.

46_2.gif (5606 b)

Вот так оно и работает. Дошли до LOOP, если регистр CX не ноль то перешли по метке и уменьшили его, а как только он 0 пошли дальше.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.01.2002