IRET/IRETD
• IRET/IRETD
• CF
• Возврат из
Действия: зависят от режима работы
В реальном режиме выполняется последовательное извлечение из стека содержимого регис-
тров
CS и EFLAGS/FLAGS, и работа прерванной программы возобновляется.
В защищенном режиме действия команды IRET
флагами NT и
в регистре
EFLAGS, а также значением флага
в образе EFLAGS, сохраненного в текущем стеке. В зависи-
мости от их состояния процессор выполняет следующие виды возврата: возврат из режима
V86; возврат в режим V86; возврат к коду на другом уровне
возврат из
задачи. Если NT = 0, то производятся действия по возврату управления прерванной програм-
ме, при этом характер этих действий зависит от соотношения уровней привилегированности
прерванной программы и программы обработки прерывания. Если
1, то производятся
действия по переключению задач.
Флаги: Все флаги в регистре EFLAGS могут быть модифицированы.
Jcc
• Jcc метка
• Переход, если выполнено условие
Действие: команды условного перехода, в зависимости от своей
анализируют
флаги, и если проверяемое условие истинно, то производится переход к ячейке, обозначенной
операндом. Если проверяемое условие ложно, то производится переход к следующей команде.
команды 529
метка
ассемблером в непосредственные значения rel8
и
которые во время
добавляются к текущему значению IP/EIP. Мне-
моника команд условного
показана в табл.
(логические условия «больше»
и «меньше» относятся к сравнениям
со знаком, а «выше» и «ниже» —
к сравнениям
значений без знака).
Таблица
Мнемоника команд условного перехода
Машинный код
70
71
72 сЬ
73 сЬ
74 cb
75 cb
cb
77 cb
78 cb
79 cb
7А cb
cb
7E cb
OF 80
cw/cd
OF 82 cw/cd
OF 83 cw/cd
Мнемокод
JO
rcl8
JC
JNAE
JAE re!8
JNC
JE
JZ
JNZ
JBE
JNA
JA
JNBE
JS
JGE rel8
}G
JCXZ rel8
JO rell6/32
JNO
16/32
JC
16/32
JNAE rel 16/32
JAE
16/32
rel 16/32
rel 16/32
Флаги
OF
= 0
1
CF = 0&ZF 0
SF
= 0
1
PF
= 0
SF<>OF
SF
= OF
1
OF
= 0
Переход
Короткий, если
Короткий, если нет переполнения
Короткий, если ниже
Короткий, если перепое
Короткий, если не выше или равно
Короткий, если выше или равно
Короткий, если не ниже
Короткий, если не перенос
Короткий, если равно
Короткий, если нуль
Короткий, если не нуль
Короткий, если не равно
Короткий, если ниже или равно
выше)
Короткий, если выше (не ниже
или равно)
Короткий, если знак
Короткий, если не знак
Короткий, если паритет (четное
количество единичных битов)
если не
(нечетное
количество единичных
Короткий, если меньше (не больше
равно)
если больше или равно
(не меньше)
Короткий, если
или равно
(не больше)
Короткий, если больше (не меньше
или равно)
Короткий, если СХ/ЕСХ = 0
Близкий, если переполнение
нет переполнения
Близкий, если ниже
Близкий, если перенос
Близкий, если не
или равно
если выше или равно
Близкий, если
ниже
Близкий, если не
Do'stlaringiz bilan baham: |