Мнемоническое обозначение некоторых команд условного перехода отражает название флага, с которым они работают, и имеет следующую структуру: первым идет символ “j” (jump, переход), вторым — либо обозначение флага, либо символ отрицания “n”, после которого стоит название флага.
Такая структура команды отражает ее назначение.
Если символа “n” нет, то проверяется состояние флага, и если он равен 1, производится переход на метку перехода.
Если символ “n” присутствует, то проверяется состояние флага на равенство 0, и в случае успеха производится переход на метку перехода.
Мнемокоды команд, названия флагов и условия переходов приведены в табл. 3.
Эти команды можно использовать после любых команд, изменяющих указанные флаги.
Таблица 3. Команды условного перехода и флаги
Название флага
| Номер бита в eflags/flag
| Команда условного перехода
| Значение флага для осуществления перехода
|
Флаг переноса cf
|
| jc
| cf = 1
|
Флаг четности pf
|
| jp
| pf = 1
|
Флаг нуля zf
|
| jz
| zf = 1
|
Флаг знака sf
|
| js
| sf = 1
|
Флаг переполнения of
|
| jo
| of = 1
|
Флаг переноса cf
|
| jnc
| cf = 0
|
Флаг четности pf
|
| jnp
| pf = 0
|
Флаг нуля zf
|
| jnz
| zf = 0
|
Флаг знака sf
|
| jns
| sf = 0
|
Флаг переполнения of
|
| jno
| of = 0
|
|
|
|
|
Если внимательно посмотреть на табл. 2 и 3, видно, что многие команды условного перехода в них являются эквивалентными, так как в основе и тех, и других лежит анализ одинаковых флагов.