Программирование на Ассемблере

Специальные команды


Команда loop:

Loop    <метка>

Выполняемые действия:

Ecx--; if (ecx) goto <метка>

Структура циклического участка программы:

; Подготовка цикла (формирование начальных значений параметров, счетчика)

<метка>:

; Циклический участок программы

 Loop   <метка>

Пример 1. Составить программу для вычисления суммы 1+2+3 +… + 100[9]

For (i=1, s=0; i<=100; i++) s+=i;

Mov     eax, 0; s=0

Mov     ecx, 100

For1:

Add      eax, ecx

Loop    for1

Команды Loopz, Loopnz дополнительно с условием ecx = 0 проверяют флаг нуля. Если флаг имеет заданное значение – то остаемся в цикле.

Команда jecxz – команда условного перехода при ecx, равном нулю – защита от “зацикливания”

Заметим, что использование команды Loop менее эффективно, чем простых команд: dec, jnz



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