52. Команды условных переходов.
Условный переход осуществляется, если выполняется определенное условие, заданное флагами процессора (кроме одной команды, которая проверяет CX на равенство нулю). Состояние флагов изменяется после выполнения арифметических, логических и некоторых других команд. Если условие не выполняется, то управление переходит к следующей команде. Существует много команд различных условных переходов.
Команды УП проверяют условие переходов:
1) По состоянию флагов
2) По результатам команд сравнения cmp (сравнение 2-х операндов)
3) По состоянию регистров CX/ECX
КУП имеют вид: Jxx метка_перехода
Пример:
Флаг| Команда|Условие переходов
CF JC CF=1 (есть переполнение)
PF JP PF=1 (число единичных бит четное)
SF JS SF=1 (знак равен 1)
И т.д.
Команды сравнения
Cmp операнд_1, операнд_2
Выполняется команда sub (вычитание) и после осуществляется КУП:
Je-равно (опер_1=операнд_2; флаг zf=1)
Jl-меньше(о_1<o_2; sf<of)
Ja-больше (выше)
Jb-меньше (ниже) (o_1<o_2; cf=1)
И т.д.
Переход зависит от CX/ECX
СХ – регистр счетчик
Используется в циклах
Jcxz метка_перехода – переход осуществляется, если cx=0