Инструкция (команда) процессора Jcc op1.

Jcc op1 — условный переход.

Буквы cc заменяются в реальных инструкциях одной или несколькими буквами, обозначающими тип перехода:

• JA переход, если выше (C=0 и Z=0);
• JAE переход, если выше или равно (C=0);
• JB переход, если ниже (C=1);
• JBE переход, если ниже или равно (C=1 или Z=1);
• JC переход, если перенос (C=1);
• JCXZ переход, если регистр CX=0;
• JECXZ переход, если ECX=0;
• JE переход, если равно (Z=1);
• JG переход, если больше (Z=0 и S=0),
• JGE переход, если больше или равно (S=0);
• JL переход, если меньше (S не равен 0)
• JLE переход, если меньше или равно (Z=1 и (S не равен 0));
• JNAпереход, если не выше (C=1 или Z=1);
• JNAE переход, если не выше или равно (C=1);
• JNB переход, если не ниже (C=0);
• JNBE переход, если не ниже или равно (C=0 и Z=0);
• JNC переход, если нет переноса (C=0);
• JNE переход, если не равно (Z=0);
• JNG переход, если не больше (Z=1 или (S не равен 0));
• JNGE переход, если не больше или равен (S не равен 0);
• JNL переход, если не меньше (S=0);
• JNLE переход, если не меньше или равен (Z=0 и S=0);
• JNO переход, если нет переполнения (O=0);
• JNP переход, если нет паритета (P=0);
• JNSпереход, если положителен (S=0);
• JNZпереход, если не нуль (Z=0);
• JO  переход, если переполнение (O=1);
• JP переход, если паритет (P=1);
• JPE то же, что JP;
• JPO то же, что JNP;
• JSпереход, если число отрицательное (S=1);
• JZ переход, если ноль (Z=1).

Все эти инструкции совершают переход по адресу, указанному в операнде op1, когда флаги или регистр (Е)СХ находятся в указанном состоянии. Если флаги установлены иначе, процессор переходит к инструкции, следующей непосредственно за Jcc.

Адрес перехода указывается в самой инструкции как смещение (положительное или отрицательное) относительно адреса текущей инструкции, хранимого в регистре (E)IP. Это смещение может занимать байт, обычное (два байта) или двойное (четыре байта) слово.

Инструкции JCXZ и JECXZ совершают “короткий” переход в пределах - 128
+127 байтов от текущего адреса инструкции. Остальные переходы называются “ближними”, потому что они возможны только в пределах данного сегмента. Для 16-битовьтх сегментов переход совершается в пределах —32 768 до +32 767, для 32-битовых сегментов - от - 2 147 483 648 до +2 147 483 647.

Условные переходы, в чьих описаниях встречаются слова “выше”*, “ниже”, используются при сравнении чисел без знака, переходы, в чьих описаниях есть слова “больше”, “меньше”, используются для сравнения чисел со знаком.

Инструкции условного перехода не влияют на флаги.

 

Вернуться к разделу Основные инструкции процессора >>

 

 

Другие новости



Счетчики





Яндекс.Метрика