Информатика и информационные технологии: конспект лекций

ОглавлениеДобавить в закладки К обложке

Дадим краткую характеристику этим командам: 1) loop метка_перехода (Loop) – повторить цикл. Команда позволяет организовать циклы, подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла. Работа команды заключается в выполнении следующих действий:

а) декремента регистра ЕСХ/СХ;

б) сравнения регистра ЕСХ/СХ с нулем: если (ЕСХ/СХ) = 0, то управление передается на следующую после loop команду;

2) loope/loopz метка_перехода

Команды loope и loopz – абсолютные синонимы. Работа команд заключается в выполнении следующих действий:

а) декремента регистра ЕСХ/СХ;

б) сравнения регистра ЕСХ/СХ с нулем;

в) анализа состояния флага нуля ZF если (ЕСХ/СХ) = 0 или XF = 0, управление передается на следующую после loop команду.

3) loopne/loopnz метка_перехода

Команды loopne и loopnz также абсолютные синонимы. Работа команд заключается в выполнении следующих действий:

а) декремента регистра ЕСХ/СХ;

б) сравнения регистра ЕСХ/СХ с нулем;

в) анализа состояния флага нуля ZF: если (ЕСХ/СХ) = 0 или ZF = 1, управление передается на следующую после loop команду.

Команды loope/loopz и loopne/loopnz по принципу своей работы являются взаимообратными. Они расширяют действие команды loop тем, что дополнительно анализируют флаг zf, что дает возможность организовать досрочный выход из цикла, используя этот флаг в качестве индикатора.

Недостаток команд организации цикла loop, loope/loopz и loopne/loopnz состоит в том, что они реализуют только короткие переходы (от —128 до +127 байт). Для работы с длинными циклами придется использовать команды условного перехода и команду jmp, поэтому постарайтесь освоить оба способа организации циклов.


Логин
Пароль
Запомнить меня