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