Команды условной передачи управления. (14 билет)

Команды условной передачи управления имеют следующий общий формат:

Jx метка_перехода,

где х - модификатор, состоящий их одной или нескольких букв, может принимать следующие значения:

E (equal) – равно,

N (not) – не,

G (greater) – больше,

L (less) – меньше,

A (above) – выше,

B (below) – ниже.

Модификаторы E, N используются для любых типов операндов, G и L – для чисел со знаком, A и B - для чисел со знаком.

Команды условного перехода удобно применять для проверки различных условий, возникающих в ходе выполнения программы. Многие команды формируют признаки результатов своей работы в регистре flags (eflags). Это обстоятельство используется командами условного перехода для работы. Ниже приведены перечень команд условного перехода, анализируемые ими флаги и соответствующие им логические условия перехода.

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

Копирование файлов. (14 билет )

Команды безусловной передачи управления. (15 билет)

Jmp - команда безусловного перехода. Формат команды: jmp [модификатор] адрес_перехода

Адрес_перехода представляет собой адрес в виде метки либо адрес области памяти, в которой находится указатель перехода. Имеется несколько кодов машинных команд безусловного перехода jmp. Адрес_перехода может находиться в текущем сегменте кода или в некотором другом сегменте. В первом случае переход называется внутрисегментным, или близким, во втором — межсегментным, или дальним. При внутрисегментном переходе изменяется только содержимое регистра eip/ip.
Можно выделить три варианта внутрисегментного использования команды jmp: прямой короткий; прямой; косвенный.

Наши рекомендации