Команды условной передачи управления. (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: прямой короткий; прямой; косвенный.