Assembler - язык неограниченных возможностей


Команды передачи управления - часть 2


/p>

Это набор команд, каждая из которых выполняет переход (типа short или near), если удовлетворяется соответствующее условие. Условием в каждом случае реально является состояние тех или иных флагов, но, если команда из набора Jcc используется сразу после СМР, условия приобретают формулировки, соответствующие отношениям между операндами СМР (см. табл. 7). Например, если операнды СМР были равны, то команда JE, выполненная сразу после этого СМР, осуществит переход. Операнд для всех команд из набора Jcc — 8-битное или 32-битное смешение относительно текущей команды.

Слова «выше» и «ниже» в таблице относятся к сравнению чисел без знака, слова «больше» и «меньше» учитывают знак.


Таблица 7. Варианты команды Jcc


Код команды Реальное условие Условие для CMP
JA
JNBE
CF = 0 и ZF = 0 если выше
если не ниже или равно
JAE
JNB
JNC
CF = 0 если выше или равно
если не ниже
если нет переноса
JB
JNAE
JC
CF = 1 если ниже
если не выше или равно
если перенос
JBE
JNA
CF = 1 и ZF = 1 если ниже или равно
если не выше
JE
JZ
ZF = 1 если равно
если ноль
JG
JNLE
ZF = 0 и SF = OF если больше
если не меньше или равно
JGE
JNL
SF = OF если больше или равно
если не меньше
JL
JNGE
SF <> OF если меньше
если не больше или равно
JLE
JNG
ZF = 1 и SF <> OF если меньше или равно
если не больше
JNE
JNZ
ZF = 0 если не равно
если не ноль
JNO OF = 0 если нет переполнения
JO OF = 1 если есть переполнение
JNP
JPO
PF = 0 если нет четности
если нечетное
JP
JPE
PF = 1 если есть четность
если четное
JNS SF = 0 если нет знака
JS SF = 1 если есть знак


Команды Jcc не поддерживают дальних переходов, так что, если требуется выполнить условный переход на дальнюю метку, необходимо использовать команду из набора Jcc с обратным условием и дальний JMP, как, например:

cmp ах,0 jne local_1 jmp far_label ; переход, если АХ = 0 lосаl_1:

  • Команда:
  • JCXZ метка
  • Назначение:
  • Переход, если СХ = 0
  • Процессор:
  • 8086
  • Команда:
  • JECXZ метка
  • Назначение:
  • Переход, если EСХ = 0
  • Процессор:
  • 80386
    <


    Начало  Назад  Вперед