String - ввод строки). См. также команду OUT.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д (два формата):
Переменный порт: |1110110w|
Фиксированный порт: |1110010w|--port--|
INC: Инкремент
----------------
О п е р а ц и я: Прибавляет 1 к байту или слову в регистре или в
памяти, например INC СХ. См. также команду DEC.
Ф л а г и: Команда воздействует на флаги AF, OF, PF, SF и ZF.
О б ъ е к т н ы й к о д (два формата):
Регистр: |01000reg|
Регистр или память: |1111111w|mod000r/m|
INT: Прерывание
-----------------
О п е р а ц и я: Прерывает выполнение программы и передает управление
по одному из 256 адресов (векторов прерывания). Команда INT выполняет
следующее: 1) уменьшает значение SP на 2 и заносит в стек флаговый
регистр, сбрасывает флаги IF и TF; 2) уменьшает значение SP на 2 и заносит
регистр CS в стек, старшее слово из вектора прерывания помещает в регистр
CS; 3) уменьшает значение SP на 2 и заносит регистр IP в стек, младшее
слово из вектора прерывания помещает в регистр IP.
Ф л а г и: Команда воздействует на флаги IF и TF.
О б ъ е к т н ы й к о д:
|1100110v|--type--| (если v = 0, то type = 3).
INTO: Прерывание по переполнению
----------------------------------
О п е р а ц и я: Приводит к прерыванию при возникновении переполнения
(флаг OF установлен в 1) и выполняет команду IRET 4. Адрес подпрограммы
обработки прерывания (вектор прерывания) находится по адресу 10Н. См.
также команду INT.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: 11001110 (без операндов).
IRET: Возврат из обработки прерывания
---------------------------------------
О п е р а ц и я: Обеспечивает возврат из подпрограммы обработки
прерывания. Команда IRET выполняет следующее: 1) помещает слово из вершины
стека в регистр IP и увеличивает значение SP на 2; 2) помещает слово из
вершины стека в регистр CS и увеличивает значение SP на 2; 3) помещает
слово из вершины стека во флаговый регистр и увеличивает значение SP. на
2. См. также команду RET.
Ф л а г и: Команда воздействует на все флаги.
О б ъ е к т н ы й к о д: 11001111 (бег операндов).
JA/JNBE: Переход по "выше" или "не ниже или равно"
----------------------------------------------------
О п е р а ц и я: Используется после проверки беззнаковых данных для
передачи управления по другому адресу. Если флаг CF равен нулю (нет
переноса) и флаг ZF равен нулю (не нуль), то команда прибавляет к регистру
IP значение операнда (относительное смещение) и выполняет таким образом
переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110111|--disp--|
JAE/JNB: Переход по "выше или равно" или "не ниже"
----------------------------------------------------
О п е р а ц и я: Используется после проверки беззнаковых данных для
передачи управления по другому адресу. Если флаг CF равен нулю (нет
переноса), то команда прибавляет к регистру IP значение операнда
(относительное смещение) и выполняет таким образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110011|--disp--|
JB/JNAE: Переход по "ниже" или "не выше или равно"
----------------------------------------------------
О п е р а ц и я: Используется после проверки беззнаковых данных для
Передачи управления по другому адресу. Если флаг CF равен единице (есть
перенос), то команда прибавляет к регистру IP значение операнда
(относительное смещение) и выполняет таким образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110010|--disp--|
JBE/JNA: Переход по "ниже или равно" или "не выше"
----------------------------------------------------
О п е р а ц и я: Используется после проверки беззнаковых данных для
передачи управления по другому адресу. Если флаг CF равен единице (есть
перенос) или флаг AF равен единице, то команда прибавляет к регистру IP
значение операнда (относительное смещение) и выполняет таким образом
переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110110|--disp--|
JC: Переход по переносу
-------------------------
О п е р а ц и я: Идентична JB/JNAE.
JCXZ: Переход по "CX равно нулю"
----------------------------------
О п е р а ц и я: Выполняет передачу управления по указанному в
операнде адресу, если значение в регистре CX равно нулю. Команда JCXZ
может быть полезна в начале циклов LOOP.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |11100011|--disp--|
JE/JZ: Переход по "равно" или по "нулю"
О п е р а ц и я: Используется после проверки знаковых или беззнаковых
данных для передачи управления по другому адресу. Если флаг ZF равен
единице (нулевое состояние), то команда прибавляет к регистру IP значение
операнда (относительное смещение) и выполняет таким образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110100|--disp--|
JG/JNLE: Переход по "больше" или "не меньше или равно"
--------------------------------------------------------
О п е р а ц и я: Используется после проверки знаковых данных для
передачи управления по другому адресу. Если флаг ZF равен нулю (не нуль) и
флаги SF и OF одинаковы (оба 0 или оба 1), то команда прибавляет к
регистру IP значение операнда (относительное смещение) и выполняет таким
образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111111|--disp--|
JGE/JNL: Переход по "больше или равно" или "не меньше"
--------------------------------------------------------
О п е р а ц и я: Используется после проверки знаковых данных для
передачи управления по другому адресу. Если флаги SF и OF одинаковы (оба 0
или оба 1), то команда прибавляет к регистру IP значение операнда
(относительное смещение) и выполняет таким образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111101|--disp--|
JL/JNGE: Переход по "меньше" или "не больше или равно"
--------------------------------------------------------
О п е р а ц и я: Используется после проверки знаковых данных для
передачи управления по другому адресу. Если флаги SF и OF различны, то
команда прибавляет к регистру IP значение операнда (относительное
смещение) и выполняет таким образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111100|--disp--|
JLE/JNG: Переход по "меньше или равно" или "не больше"
--------------------------------------------------------
О п е р а ц и я: Используется после проверки знаковых данных для
передачи управления по другому адресу. Если флаг ZF равен единице (нулевое
состояние) и флаги SF и OF различны, то команда прибавляет к регистру IP
значение операнда (относительное смещение) и выполняет таким образом
переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111110|--disp--|
JMP: Безусловный переход
--------------------------
О п е р а ц и я: Выполняет переход по указанному адресу при любых
условиях. Команда JMP заносит в регистр IP необходимый адрес перехода.
Существует пять типов команды JMP для передачи управления внутри сегмента
или между сегментами. При межсегментном переходе в регистр CS заносится
также новый сегментный адрес.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д (пять форматов):
Прямой переход внутри сегмента:
|11101001|disp-low|disp-high|
Прямой переход внутри сегмента (короткий):
|11101011|--disp--|
Косвенный переход внутри сегмента:
|11111111|mod100r/m|
Косвенный межсегментный переход:
|11111111|mod101r/m|
Прямой межсегментный переход:
|11101010|offset-low|offset-high|seg-low|seg-high|
JNC: Переход если нет переноса
--------------------------------
О п е р а ц и я: Идентична JAE/JNB.
JNE/JNZ: Переход по "не равно" или по "не нуль"
-------------------------------------------------
О п е р а ц и я: Используется после проверки знаковых данных для
передачи управления по другому адресу. Если флаг ZF равен нулю (ненулевое
состояние), то команда прибавляет к регистру IP значение операнда
(относительное смещение) и выполняет таким образом переход.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110101|--disp--|
INO: Переход, если нет переполнения
-------------------------------------
О п е р а ц и я: Используется для передачи управления по
определенному адресу после проверки на отсутствие переполнения. Если флаг
OF равен, нулю (нет переполнения), то команда прибавляет к регистру IP
значение операнда (относительное смещение) и выполняет таким образом
переход. См. также команду JO.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110001|--disp--|
JNP/JPO: Переход, если нет паритета или паритет нечетный
----------------------------------------------------------
О п е р а ц и я: Приводит к передаче управления по определенному
адресу, если в результате операции обнаружено отсутствие паритета или
паритет нечетный. Нечетный паритет в данном случае означает, что в
результате операции в . младших восьми битах получено нечетное число
битов. Если флаг PF равен нулю (нечетный паритет), то команда прибавляет к
регистру IP значение операнда (относительное смещение) и выполняет таким
образом переход. См. также команду JP/JPE.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111011|--disp--|
JHS: Переход, если нет знака
------------------------------
О п е р а ц и я: Приводит к передаче управления по определенному
адресу, если в результате операции получен положительный знак. Если флаг
SF равен нулю (положительное), то команда JNS прибавляет к регистру IP
значение операнда (относительное смещение) и выполняет таким образом
переход. См. также команду JS.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111001|--disp--|
JO: Переход по переполнению
-----------------------------
О п е р а ц и я: Приводит к передаче управления по определенному
адресу, если в результате операции получено состояние переполнения. Если
флаг OF равен единице (переполнение), то команда JO прибавляет к регистру
IP значение операнда (относительное смещение) и выполняет таким образом
переход. См. также команду JNO.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01110000|--disp--|
JP/JPE: Переход, если есть паритет или паритет четный
-------------------------------------------------------
О п е р а ц и я: Приводит к передаче управления по определенному
адресу, если в результате операции обнаружен четный паритет. Четный
паритет в данном случае означает, что в результате операции в младших