Jazik_Assemblera_dlja_IBM_PC_i_programmir
.pdfне определены).
О б ъ е к т н ы й к о д: 00111111 (без операндов). |
|
|
|
|
|
|||||
|
ADC: Сложение с переносом |
|
|
|
|
|
|
|||
--------------------------- |
сложении |
многословных |
||||||||
О п е р а ц и я: |
Обычно |
используется |
при |
|||||||
величин для учета бита переполнения в |
последующих |
фазах |
операции. |
Если |
||||||
флаг CF установлен в 1, то команда ADC сначала прибавляет 1 к операнду |
1. |
|||||||||
Команда всегда прибавляет операнд 2 к операнду 1, аналогично команде ADD. |
||||||||||
Ф л а г и: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF. |
|
|||||||||
О б ъ е к т н ы й к о д (три формата): |
|
|
|
|
|
|
|
|||
Регистр плюс регистр или память: |
|
|
|
|
|
|
|
|||
|000100dw|modregr/m| |
|
|
|
|
|
|
|
|
||
Регистр АХ (AL) плюс непосредственное значение: |
|
|
|
|
||||||
|0001010w|-- data--|data, если w=1| |
|
|
|
|
|
|
||||
Регистр или память плюс непосредственное значение: |
|
|
|
|||||||
y100000sw|mod010r/m|--data--|data, если sw=01| |
|
|
|
|||||||
ADD: Сложение двоичных чисел |
|
|
|
|
|
|
||||
------------------------------ |
|
слово |
в |
памяти, |
||||||
О п е р а ц и я: Прибавляет |
один |
байт |
или |
одно |
|
|||||
регистре или непосредственно к содержимому регистра |
или |
|
прибавляет |
один |
||||||
байт или слово в регистре или непосредственно к памяти. |
|
|
|
|
|
|||||
Ф л а г и: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF. |
|
|||||||||
О б ъ е к т н ы й к о д (три формата): |
|
|
|
|
|
|
|
|||
Регистр плюс регистр или память: |
|
|
|
|
|
|
|
|||
|000000dw|modregr/rm| |
|
|
|
|
|
|
|
|
||
Регистр AX (AL) плюс непосредственное значение: |
|
|
|
|
||||||
|0000010w|--data--|data, если w=1| |
|
|
|
|
|
|
||||
Регистр или память плюс непосредственное значение: |
|
|
|
|||||||
|100000sw|mod000r/m|--data--|data, если BW=01| |
|
|
|
|||||||
|
AND: Логическое И |
|
|
|
|
|
|
|
||
|
------------------- |
|
|
|
|
(И) |
битов |
|||
О п е р а ц и я: Команда выполняет поразрядную конъюнкцию |
||||||||||
двух операндов. Операнды представляют собой одноили |
двухбайтовые |
|||||||||
величины в регистре или памяти. Второй операнд |
может |
содержать |
||||||||
непосредственные данные. |
Команда AND проверяет два |
операнда |
поразрядно. |
|||||||
Если два проверяемых бита равны 1, то в |
первом операнде |
устанавливается |
единичное значение бита, в других случаях - нулевое. См. также команды OR, XOR и TEST.
Ф л а г и: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF не определен).
О б ъ е к т н ы й к о д (три формата):
Регистр И регистр или память: |001000dw|modregr/m|
Регистр AX (AL) И непосредственное значение: |0010010w|--data--|data, если w=1|
Регистр или память И непосредственное значение: |1010000w|modl00r/m|--data--|data, если w=1|
CALL: Вызов процедуры
-----------------------
О п е р а ц и я: Выполняет короткий или длинный вызов процедуры для связи подпрограмм. Для возврата из процедуры используется команда RET. Команда CALL уменьшает содержимое SP на 2 и заносит в стек адрес следующей команды (из IP), а затем устанавливает в регистре IP относительный адрес
процедуры. |
Впоследствии команда RET |
использует |
значение |
в |
стеке для |
|||
возврата. Существует четыре типа команды CALL для вызова внутри сегмента и |
||||||||
между сегментами. |
Команда межсегментного |
вызова |
сначала |
уменьшает |
SP, |
|||
заносит в |
стек |
адрес из регистра |
CS, |
а затем загружает |
в |
стек |
внутрисегментный указатель.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д (четыре формата):
Прямая адресация в сегменте: |11101000|disp-low|diep-high|
Косвенная адресация в сегменте: |11111111|mod010r/m|
Косвенная адресация между сегментами: |11111111|mod011r/m|
Прямая адресация между сегментами: |10011010|offset-low|offset-high|seg-low|seg-high|
CBW: Преобразование байта в слово
-----------------------------------
О п е р а ц и я: Расширяет однобайтовое арифметическое значение в регистре AL до размеров слова. Команда CBW размножает знаковый бит (7) в регистре AL по всем Битам регистра АН. См также команду CWD.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: 10011000 (без операндов).
CLC: Сброс флага переноса
---------------------------
О п е р а ц и я: Устанавливает значение флага переноса, равное 0, так
что, например, команда ADC не прибавляет единичный |
бит. |
Команда CLC |
не |
||
имеет операндов. См. также команду STD. |
|
|
|
||
Ф л а г и: Команда воздействует на флаг CF (устанавливается в 0). |
|
||||
О б ъ е к т н ы й |
к о д: 11111000. |
|
|
|
|
|
CLD: Сброс |
флага направления |
|
|
|
------------------------------- |
|
0. |
|||
О п е р а ц и я: Устанавливает значение флага направления, равное |
|||||
В результате такие строковые операции, как CMPS |
или |
MOVS обрабатывают |
|||
данные слева направо. См. также команду STD. |
|
|
|
||
Ф л а г и: Команда воздействует на флаг DF (устанавливается в 0). |
|
||||
О б ъ е к т н ы й к о д: 11111100 (без операндов). |
|
|
|||
|
CLI: Сброс флага прерывания |
|
|
|
|
О п е р а ц и я: |
----------------------------- |
|
прерывания |
по |
|
Запрещает |
маскируемые внешние |
||||
процессорной шине INTR посредством установки значения флага прерывания |
IF |
в 0. См. также команду STI.
Ф л а г и: Команда воздействует на флаг IF (устанавливается в 0).
О б ъ е к т н ы й к о д: 11111010 (без операндов).
CMC: Переключение флага переноса
----------------------------------
О п е р а ц и я: Инвертирует флаг CF, т.е. преобразует нулевое значение флага CF в единичное и наоборот.
Ф л а г и: Команда воздействует на флаг CF (инвертируется).
О б ъ е к т н ы й к о д: 11110101 (без операндов).
CMP: Сравнение
----------------
Оп е р а ц и я: Сравнивает содержимое двух полей данных. Фактически команда CMP вычитает второй операнд из первого, но содержимое полей не изменяет. Операнды должны иметь одинаковую длину: байт или слово. Команда CMP может сравнивать содержимое регистра, памяти или непосредственное значение с содержимым регистра; или содержимое регистра или непосредственное значение с содержимым памяти. См. также команду CMPS.
Фл а г и: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.
Об ъ е к т н ы й к о д (три формата):
Регистр или память с регистром: |001110dw|modregr/m|
Непосредственное значение с регистром AX (AL): |0011110w|--data--|data, если w=1|
Непосредственное значение с регистром или памятью: |100000sw|mod111r/m|--data--|data, если sw=0|
CMPS/CMPSB/CMPSW: Сравнение строк
-----------------------------------
О п е р а ц и я: Сравнивают строки любой длины. Этим командам обычно предшествует префикс REPn, например REPE CMPSB. Команда CMPSB сравнивает память по байтам, а команда CMPSW - по словам. Первый операнд этих команд адресуется регистровой парой DS:SI, а второй - регистровой парой ES:DI. Если флаг DF установлен в 0, то сравнение происходит слева направо, регистры SI и DI при этом увеличиваются после каждого сравнения. Если флаг DF установлен в 1, то сравнение происходит справа налево, а регистры SI и DI при этом уменьшаются после каждого сравнения.
Ф л а г и: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.
О б ъ е к т н ы й к о д: 1010011w.
CWD: Преобразование слова в двойное слово
-------------------------------------------
Оп е р а ц и я: Расширяет арифметическое значение в регистре АХ до размеров двойного слова в регистровой паре DX:AX, дублируя при этом знаковый бит (15-й бит в регистре АХ) через регистр DX. Обычно используется для получения 32-битового делимого. См. также команду CBW.
Фл а г и: Не меняются.
Об ъ е к т н ы й к о д: 10011001 (без операндов).
DAA: Десятичная коррекция для сложения
----------------------------------------
О п е р а ц и я: Корректирует |
результат сложения двух BCD |
(десятичных |
||
упакованных) элементов в регистре |
AL. |
Если четыре правых |
бита |
имеют |
значение больше 9 или флаг AF установлен |
в 1, то команда DAA прибавляет 6 |
|||
к регистру AL и устанавливает флаг AF. |
Если регистр AL содержит значение |
|||
больше, чем 9F, или флаг CF установлен в |
1, то команда DAA прибавляет |
60Н |
крегистру AL и устанавливает флаг CF. См. также команду DAS.
Фл а г и: Команда воздействует на флаги AF. CF, PF, SF и 2F (флаг OF неопределен).
О б ъ е к т н ы й к о д: 00100111 (без операндов).
DAS: Десятичная коррекция для вычитания |
|
|
|
||||
----------------------------------------- |
|
двух |
BCD |
||||
О п е р а ц и я: |
Корректирует |
результат |
вычитания |
||||
(десятичных упакованных) чисел в регистре AL. Если |
четыре |
правых |
бита |
||||
имеют значение больше 9 или флаг AF |
установлен |
в |
1, |
то |
команда |
DAS |
|
вычитает 60Н из регистра AL и устанавливает флаг |
CF. |
См. |
также команду |
||||
DAA. |
|
|
|
|
|
|
|
Ф л а г и: Команда воздействует на флаги AF, CF, PF, SF и ZF.
О б ъ е к т н ы й к о д: 00101111 (без операндов).
DEC: Декремент
----------------
О п е р а ц и я: Вычитает 1 из байта или слова в регистре или в памяти например DEC СХ. См. также команду INC.
Ф л а г и: Команда воздействует на флаги AF, OF, PF, SF и ZF.
О б ъ е к т н ы й к о д (два формата):
Регистр: |01001reg|
Регистр или память: |1111111w|mod001r/m|
DIV: Деление
--------------
О п е р а ц и я: Выполняет деление беззнакового делимого (16 или 32 бит) на беззнаковый делитель (8 или 16 бит). Левый единичный бит
рассматривается как бит данных, а не как минус |
для |
отрицательных |
чисел. |
|||
Для 16-битового деления делимое должно |
находиться |
в |
регистре |
АХ, а |
||
8-битовый делитель возможен в регистре или |
в |
памяти, |
например |
DIV |
BH. |
|
Частное от деления получается в регистре AL, а остаток - |
в регистре |
AН. |
||||
Для 32-битового деления делимое должно находиться в регистровой паре DX:AX |
||||||
а 16-битовый делитель возможен в регистре или в памяти, |
например DIV |
СХ. |
||||
Частное от деления получается в регистре AХ, |
а остаток - в регистре DX. |
|||||
См. также команду IDIV. |
|
|
|
|
|
|
Ф л а г и: Команда воздействует на флаги AF, CF, OF, PF SF и ZF |
(все |
не определены).
О б ъ е к т н ы й к о д: |1111011w|mod110r/m|
ESC: Переключение на сопроцессор
----------------------------------
О п е |
р а ц и я: |
Обеспечивает |
использование |
сопроцессора для |
|||||
выполнения |
специальных операций. |
Для выполнения |
арифметических |
|
операций |
||||
над числами с плавающей запятой используются сопроцессоры 8087 или |
80287. |
||||||||
Команда ESC передает в сопроцессор инструкцию и |
операнд |
для |
выполнения |
||||||
необходимой операции. |
|
|
|
|
|
|
|
|
|
Ф л а г и: Не меняются. |
|
|
|
|
|
|
|
||
О б ъ е к т н ы й |
к о д: |11011xxx|modxxxr/m| (x - любое знач.). |
||||||||
|
|
HLT: Останов микропроцессора |
|
|
|
|
|||
|
|
------------------------------ |
|
|
в |
котором |
|||
О п е р а ц и я: Приводит процессор в состояние останова, |
|||||||||
происходит ожидание прерывания. |
При завершении команды HLT регистры CS:IP |
||||||||
указывают на следующую команду. |
При |
возникновении |
прерывания |
процессор |
|||||
записывает в стек регистры CS и |
IP |
и выполняет |
подпрограмму |
обработки |
|||||
прерывания. |
При возврате из подпрограммы команда |
IRET |
восстанавливает |
регистры CS и IP из стека и управление передается на команду, следующую за командой HLT.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: 11110100 (без операндов).
IDIV: Целое деление знаковых величин
--------------------------------------
О п е р а ц и я: Выполняет деление знакового делимого (16 или 32 бит) на знаковый делитель (8 или 16 бит). Левый единичный бит рассматривается как знак минус для отрицательных чисел. Для 16-битового деления делимое должно находиться в регистре АХ, a 8-битовый делитель возможен в регистре или в памяти, например IDIV DL. Частное от деления получается в регистре AL, а остаток - в регистре АН. Для 32-битового деления делимое должно находиться в регистровой паре DX:AX, а 16-битовый делитель возможен в регистре или в памяти, например IDIV BX. Частное от деления получается в регистре АХ, а остаток - в регистре DX. См. команды CBW и CWD для расширения знакового делимого, а также команду DIV.
Фл а г и: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.
Об ъ е к т н ы й к о д: |1111011w|mod111r/m|
IMUL: Целое умножение знаковых величин
----------------------------------------
Оп е р а ц и я: Выполняет умножение на знаковый множитель (8 или 16 бит). Левый единичный бит рассматривается как знак минус для отрицательных чисел. Для 8-битового умножения множимое должно находиться в регистре AL,
амножитель возможен в регистре или в памяти, например IMUL BL. Произведение получается в регистре АХ. Для 16-битового умножения множимое должно находиться в регистре АХ, а множитель возможен в регистре или в памяти, например IMUL BX. Произведение получается в регистровой паре DX:AX. См. также команду MUL.
Фл а г и: Команда воздействует на флаги CF и OF (флаги AF PF SF и ZF не определены).
Об ъ е к т н ы й к о д: |1111011w|mod101r/m|
IN: Ввод байта или слова из порта
-----------------------------------
О п е р а ц и я: Передает из вводного порта один байт в регистр AL
или два байта в регистр АХ). Порт кодируется как фиксированный числовой операнд (IN АХ,порт#) или как переменная в регистре DX (IN AX,DX). Процессоры 80186, 80286 и 80386 имеют, кроме того, команду INS (Input 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: Переход, если есть паритет или паритет четный
-------------------------------------------------------
Оп е р а ц и я: Приводит к передаче управления по определенному адресу, если в результате операции обнаружен четный паритет. Четный паритет в данном случае означает, что в результате операции в младших восьми битах получено четное число битов. Если флаг PF равен единице (четный паритет), то команда прибавляет к регистру IP значение операнда (относительное смещение) и выполняет таким образом переход. См. также команду JNP/JPO.
Фл а г и: Не меняются.
Об ъ е к т н ы й к о д: |01111010|--disp--|
JS: Переход по знаку
----------------------
О п е р а ц и я: Передает управления по определенному адресу, если в результате операции получен отрицательный знак. Если флаг SF равен единице (отрицательно), то команда JS прибавляет к регистру IP значение операнда (относительное смещение) и выполняет таким образом переход. См. также команду JNS.
Ф л а г и: Не меняются.
О б ъ е к т н ы й к о д: |01111000|--disp--|
LAHF: Загрузка флагов в регистр АН
------------------------------------