Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник.docx
Скачиваний:
5
Добавлен:
26.11.2018
Размер:
54.24 Кб
Скачать

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--|