Справочник по языку Ассемблера IBM PC

       

LOOP


(LOOP control by register cx)

Управление циклом по cx

Схема команды:  loop метка 

Назначение: организация цикла со счетчиком в регистре cx.


Алгоритм работы:

выполнить декремент содержимого регистра ecx/cx;

анализ регистра ecx/cx:

если ecx/cx=0, передать управление следующей за loop команде;



если ecx/cx=1, передать управление команде, метка которой указана в качестве операнда loop.

Состояние флагов после выполнения команды:

выполнение команды не влияет на флаги

Применение:


Команду loop применяют для организации цикла со счетчиком. Количество повторений цикла задается значением в регистре ecx/cx перед входом в последовательность команд, составляющих тело цикла. Помните о двух важных моментах:

    для предотвращения выполнения цикла при нулевом ecx/cx используйте команду jecxz/jcxz. Если этого не сделать, то при изначально нулевом ecx/cx

    цикл повторится 4 294 967 295/65 536 раз;

    смещение метки, являющейся операндом loop, не должно выходить из диапазона -128...+127 байт. Это смещение, как и в командах условного перехода, является относительным от значения счетчика адреса следующей за loop команды.

     

            mov     cx,10 ...         jcxz    m1 cycl: ;тело цикла         loop    cycl m1:         

    См. также: урок 10 и команды /, /, /



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