Условные переходы
JB FARLABEL
Эту команду следует заменить следующей конструкцией:
JNA If
JMP FARLABEL
1:
Иными словами, если выполнение команды JUMP BELOW невозможно, составляется конструкция, состоящая из команды JUMP NOT ABOVE с близлежащей меткой 1 в качестве объекта и безусловного перехода к FARLABEL. Результаты в обоих случаях одинаковы, различие заключается лишь в больших или меньших временных и пространственных затратах.
Если объект перехода находится слишком далеко, ассемблер автоматически организует составной переход. Правильно провести подобные вычисления довольно сложно. Предположим, что расстояние до объекта близко к максимально допустимому, и при этом некоторые промежуточные команды содержат условные переходы. Внешний переход может быть проведен только после определения расстояний внутренних переходов. В такой ситуации ассемблер предпринимает определенные меры предосторожности. К примеру, он может сформировать составной переход без строгой на то необходимости. Непосредственный условный переход формируется ассемблером только в том случае, если объект перехода совершенно точно находится на досягаемом расстоянии.Таблица В.З, Условные переходы | ||
Команда | Описание | Условие перехода |
JNA, JBE | Ниже или равно | CF = 1 или ZF = 1 |
JNB, JAE, JNC | Не ниже | о и LL О |
JE, JZ | Нуль, равно | ZF = 1 |
t@tabl_body = JNLE, JG | Больше чем | SF = OF и ZF = 0 |
JGE, JNL | Больше или равно | Li. О II LL СО |
JO | Переполнение | II LL О |
JS | Отрицательный знак | II LL СО |
JCXZ | Значение СХ равно нулю | О X II о |
JB, JNAE, JC | Ниже | CF = 1 |
JNBE, JA | Выше | CF = 0 и ZF = 0 |
JNE, JNZ | Не равно нулю, не равно | о и LL N |
JL, JNGE | Меньше чем | SF Ф OF |
JLE, JNG | Меньше или равно | SF ф OF или ZF = 1 |
JNO | Без переполнения | о и LL О |
JNS | Неотрицательно | О II LL СО |
В большинстве своем условные переходы зависят от флагов состояния и предваряются командами сравнения или проверки. Команда СМР вычитает исходный операнд из целевого операнда, устанавливает коды состояния, после чего сбрасывает результат. Ни один из операндов при этом не меняется. При нулевом результате или установленном знаковом бите (обозначающем отрицательный результат) устанавливается соответствующий флаговый бит. Если результат не представляется возможным выразить допустимым числом битов, устанавливается флаг переполнения. Если старший бит сопровождается переносом, устанавливается флаг переноса. При условных переходах все эти биты можно проверить.
Для обработки операндов со знаками используются команды GREATER THAN и LESS THAN. Операнды без знаков обрабатываются командами ABOVE и BELOW.
Еще по теме Условные переходы:
- § 41 Выдача купчей от крепостных дел. – Несостоявшаяся купчая. – Приобретение вотчинного права купчею по римскому праву. – Переход права по купчей у нас. – Отмена и уничтожение купчей. – Условная продажа. – Историческое право выкупа. – Двухлетний срок для спора о купчей крепости
- § 47 Дарение по русскому закону. – Форма. – Ограничение права на дарение. – Совершение и принятие дара. – Поворот дара к дарителю. – Переход права собственности на дар. – Дар условный. – Дар противозаконный. – Отличие дарения от завещания. – Дарение на случай смерти
- ПЕРЕХОД ЦИФР «22 — 4». ХАРАКТЕРИСТИКИ ПЕРЕХОДА
- ПЕРЕХОД ЦИФР «8 — 11», ХАРАКТЕРИСТИКИ ПЕРЕХОДА
- ПЕРЕХОД ЦИФР «6 — 7». ХАРАКТЕРИСТИКИ ПЕРЕХОДА
- ТОРМОЖЕНИЕ УСЛОВНОЕ
- РЕФЛЕКС УСЛОВНЫЙ: ГЕНЕРАЛИЗАЦИЯ
- РЕФЛЕКС УСЛОВНЫЙ
- ГРУППА УСЛОВНАЯ
- § 29 Передача и переход прав по обязательствам. – Римская конструкция права передачи. – Облегчение передачи новейшим законодательством. – Передаточная надпись. – Ограничения передачи. – Действие передачи. – Ответственность передатчика и права приобретателя. – Вступление в право кредитора или суброгация. – Русский закон передачи. – Передача заемных писем. – Переход требований к кредиторам.
- ГЕНЕРАЛИЗАЦИЯ РЕФЛЕКСА УСЛОВНОГО