Сmр операнд_1,операнд_2

Флаги, устанавливаемые командой СМР, можно анализировать специальными командами условного перехода.

 

Таблица 11. – Перечень команд условного перехода для команды CMP

 

Типы операндов Команда условного перехода Критерий условного перехода Значения флагов для перехода
Любые JE операнд1=операнд2 ZF=1
Любые JNE операнд1<>операнд2 ZF=0
Со знаком JL / JNGE операнд1<операнд2 SF<>OF
Со знаком JLE / JNG операнд1<=операнд2 SF<>OF или ZF=1
Со знаком JG / JNLE операнд1>операнд2 Sf=of и zf=0
Со знаком JGE / JNL операнд1>=операнд2 SF=OF
Без знака JB / JNAE операнд1<операнд2 CF=1
Без знака JBE / JNA операнд1<=операнд2 CF=1 или ZF=1
Без знака JA / JNBE операнд1>операнд2 CF=0 и ZF=0
Без знака JAE / JNB операнд1>=операнд2 CF=0

 

Так как команды условного перехода не изменяют флагов, то после одной команды СМР вполне могут следовать несколько команд условного перехода. Это может быть сделано для того, например, чтобы исследовать каждую из альтернативных ветвей: больше, меньше или равно:

.data

mas db dup (?)

.code

cmp mas[si]. 5 ;сравнить очередной элемент массива с 5

je eql ;переход, если элемент mas равен 5

jl low ;переход, если элемент mas меньше 5

jg grt ;переход, если элемент mas больше 5

eql :

low :

grt :