Микропроцессор имеет 18 команд условного перехода. Эти команды позволяют проверить: 1) отношение между операндами со знаком («больше — меньше»);
- 2) отношение между операндами без знака
- («выше — ниже»); 3) состояния арифметических флагов ZF, SF, CF, OF, PF (но не AF).
Команды условного перехода имеют одинаковый синтаксис: jcc меткаперехода Команда сравнения cmp имеет интересный принцип работы. Он абсолютно такой же, как и у команды вычитания — sub операнд1, операнд2.
Команда cmp так же, как и команда sub, выполняет вычитание операндов и устанавливает флаги. Единственное, чего она не делает — это запись результата вычитания на место первого операнда.
Синтаксис команды cmp — cmp операнд1, операнд2 (compare) — сравнивает два операнда и по результатам сравнения устанавливает флаги.
Организация циклов
Организовать циклическое выполнение некоторого участка программы можно, к примеру, используя команды условной передачи управления или команду безусловного перехода jmp:
- 1) loop меткаперехода (Loop) — повторить цикл. Команда позволяет организовать циклы, подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла;
- 2) loope/loopz меткаперехода
Команды loope и loopz — абсолютные синонимы;
3) loopne/loopnz меткаперехода
Команды loopne и loopnz также абсолютные синонимы. Команды loope/loopz и loopne/loopnz по принципу своей работы являются взаимообратными.