Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Jazik_Assemblera_dlja_IBM_PC_i_programmir

.pdf
Скачиваний:
43
Добавлен:
27.03.2015
Размер:
2 Mб
Скачать

не определены).

О б ъ е к т н ы й к о д: 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: Загрузка флагов в регистр АН

------------------------------------

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]