Page 41 - 4989
P. 41
4.3.3 Циклічна конструкція
Циклічна конструкція може бути утворена з використанням
команд умовних та безумовних переходів або з використанням
спеціальної команди організації циклу (LOOP).
Цикл з передумовою може бути реалізований так:
<мітка2>:
Jcc <мітка1>
<команди>
JMP <мітка2>
<мітка1>:
Тут команда умовного переходу Jcc повинна перевіряти
умову, при якій виконання циклу завершується. Поки ця умова не
виконується, будуть виконуватись команди циклу та повернення
до перевірки умови.
Цикл з постумовою:
<мітка1>:
<команди>
Jcc <мітка1>
Тут команда умовного переходу Jcc повинна перевіряти
умову, при якій виконання циклу продовжується. Вихід з циклу
відбудеться, коли умова перестане виконуватись і відповідно не
відбудеться перехід на початок циклу.
Цикл з лічильником можна реалізувати як цикл з
постумовою, що перевіряє значення лічильника.
Приклад:
MOV ECX, 10
M1:
ADD EAX, EBX
DEC ECX
JNZ M1
Тут цикл виконується 10 разів – поки значення регістра ЕСХ
не стане рівним 0.
Команда LOOP <мітка> неявно використовує регістр ЕСХ і
еквівалентна послідовності команд:
41