ВУЗ:
Составители:
33
и IP). Если в команде задано необязательное значение, команда RET
добавляет это значение к указателю стека SP. Это позволяет пропускать
параметры, передаваемые через стек перед командой CALL.
JMP (цель)
Команда JMP осуществляет безусловную передачу управления на
указанный адрес. В отличие от команды CALL команда JMP не сохраняет в
стеке информацию об адресе возврата. Так же, как в команде
CALL адрес
целевого операнда может быть указан непосредственно в команде
(непосредственная команда JMP), а также в памяти или в регистре
(косвенная команда JMP).
При внутрисегментной непосредственной команде JMP к счетчику
команд IP добавляется смещение, указанное в команде. Если компилятор
обнаруживает, что целевой адрес находится на расстоянии меньшем, чем
127 байтов от команды, он автоматически генерирует
двухбайтовый
вариант команды, называемый коротким переходом (SHORT JMP), в
противном случае генерируется ближний переход (NEAR JMP), в котором
диапазон перехода составляет плюс-минус 32К.
При внутрисегментной косвенной команде JMP смещение,
добавляемое к регистру IP, может быть указано в памяти или в 16-
разрядном регистре. В последнем случае значение смещение берется из
регистра, указанного в команде.
При межсегментной
непосредственной команде JMP значения IP и
CS заменяются значениями, указанными в команде.
При межсегментной косвенной команде JMP значения IP и CS могут
быть заменены только значениями расположенными в памяти. При этом
первое слово двойного слова содержит смещение, второе слово – сегмент.
Команды условного перехода
Мнемон. Проверяемое условие Переход, если ...
JA/JNBE (CF or ZF) = 0 выше/не ниже или равно
JAE/JNB CF = 0 выше или равно/не ниже
JB/JNAE CF = 1 ниже/не выше или равно
JBE/JNA (CF or ZF) = 1 ниже или равно/не выше
JC CF = 1 перенос
JE/JZ ZF = 1 равно/нуль
JG/JNLE [(SF xor OF) or ZF] = 0 больше/не меньше или равно
JGE/JNL (SF xor OF) = 0 больше или равно/не меньше
JL/JNGE (SF xor OF) = 1 меньше/не больше или равно
JLE/JNG [(SF xor OF) or ZF] = 1 меньше или равно/не больше
JNC CF = 0 нет переноса
33
и IP). Если в команде задано необязательное значение, команда RET
добавляет это значение к указателю стека SP. Это позволяет пропускать
параметры, передаваемые через стек перед командой CALL.
JMP (цель)
Команда JMP осуществляет безусловную передачу управления на
указанный адрес. В отличие от команды CALL команда JMP не сохраняет в
стеке информацию об адресе возврата. Так же, как в команде CALL адрес
целевого операнда может быть указан непосредственно в команде
(непосредственная команда JMP), а также в памяти или в регистре
(косвенная команда JMP).
При внутрисегментной непосредственной команде JMP к счетчику
команд IP добавляется смещение, указанное в команде. Если компилятор
обнаруживает, что целевой адрес находится на расстоянии меньшем, чем
127 байтов от команды, он автоматически генерирует двухбайтовый
вариант команды, называемый коротким переходом (SHORT JMP), в
противном случае генерируется ближний переход (NEAR JMP), в котором
диапазон перехода составляет плюс-минус 32К.
При внутрисегментной косвенной команде JMP смещение,
добавляемое к регистру IP, может быть указано в памяти или в 16-
разрядном регистре. В последнем случае значение смещение берется из
регистра, указанного в команде.
При межсегментной непосредственной команде JMP значения IP и
CS заменяются значениями, указанными в команде.
При межсегментной косвенной команде JMP значения IP и CS могут
быть заменены только значениями расположенными в памяти. При этом
первое слово двойного слова содержит смещение, второе слово – сегмент.
Команды условного перехода
Мнемон. Проверяемое условие Переход, если ...
JA/JNBE (CF or ZF) = 0 выше/не ниже или равно
JAE/JNB CF = 0 выше или равно/не ниже
JB/JNAE CF = 1 ниже/не выше или равно
JBE/JNA (CF or ZF) = 1 ниже или равно/не выше
JC CF = 1 перенос
JE/JZ ZF = 1 равно/нуль
JG/JNLE [(SF xor OF) or ZF] = 0 больше/не меньше или равно
JGE/JNL (SF xor OF) = 0 больше или равно/не меньше
JL/JNGE (SF xor OF) = 1 меньше/не больше или равно
JLE/JNG [(SF xor OF) or ZF] = 1 меньше или равно/не больше
JNC CF = 0 нет переноса
Страницы
- « первая
- ‹ предыдущая
- …
- 31
- 32
- 33
- 34
- 35
- …
- следующая ›
- последняя »
