Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
I8086.DOC
Скачиваний:
50
Добавлен:
02.05.2014
Размер:
1.36 Mб
Скачать
      1. Mul– умножение беззнаковое

F6 /4

MUL r/m8

AX:= AL * r/m8

F7 /4

MUL r/m16

DX, AX:= AX * r/m16

Описание.Эта команда производит целочисленное умножение двух беззнаковых двоичных чисел.

Один из множителей располагается в регистре ALилиAX(в зависимости от разрядности), второй – в регистре общего назначения или ячейке памяти, что определяется байтомModRegR/M.

Произведение имеет разрядность, вдвое превышающую разрядность множителей. Оно размещается в регистре AX(8-разрядные множители, 16-разрядный результат) или в регистровой пареDX:AX(16-разрядные множители, 32-разрядный результат, старшая часть в регистреDX, младшая – вAX).

ФлажкиSF,ZF,AFиPFне изменяются.

Флажки OFиCFустанавливаются, если разрядность результата превышает разрядность исходных операндов. Если результат вмещается в разрядность исходных операндов, эти флажки будут сброшены.

      1. Neg– смена знака

F6 /3

NEG r/m8

r/m8:= – r/m8

F7 /3

NEG r/m16

r/m16:= – r/m16

Описание.Эта команда меняет знак операнда противоположный.

ФлажкиOF,SF,ZF,AFиPFустанавливаются в соответствии с результатом.

Флажок CFсбрасывается, если исходный операнд равен нулю, и устанавливается в противном случае.

      1. NOP– нет операции

90

NOP

нет операции

Описание.Никаких действий не производится.

Флажкине изменяются.

Замечания по программированию

Строго говоря, инструкция NOPявляется инструкциейXCHG AX, AX.

      1. NOT– инверсия

F6 /2

NOT r/m8

r/m8:= NOT r/m8

F7 /2

NOT r/m16

r/m16:= NOT r/m16

Описание.Производится инверсия операнда.

Флажкине изменяются.

      1. OR– логическое ИЛИ

08 /r

OR r/m8, r8

r/m8:= r/m8 OR r8

09 /r

OR r/m16, r16

r/m16:= r/m16 OR r16

0A /r

OR r8, r/m8

r8:= r8 OR r/m8

0B /r

OR r16, r/m16

r16:= r16 OR r/m16

0C ib

OR AL, imm8

AL:= AL OR imm8

0D iw

OR AX, imm16

AX:= AX OR imm16

80 /1 ib

OR r/m8, imm8

r/m8:= r/m8 OR imm8

81 /1 iw

OR r/m16, imm16

r/m16:= r/m16 OR imm16

Описание.Выполняется операция “логическое ИЛИ” между операндами инструкции, результат заносится на место первого операнда.

ФлажкиOFиCFочищаются.

Флажки SF,ZFиPFустанавливаются в соответствии с результатом.

Состояние флажка AFне определено.

      1. Out– вывод информации из порта ввода-вывода

E6 ib

OUT AL, imm8

вывод из AL в порт imm8

E7 ib

OUT AX, imm8

вывод из AX в порт imm8

EE

OUT AL, DX

вывод из AL в порт [DX]

EF

OUT AX, DX

вывод из AX в порт [DX]

Описание.Эта инструкция выводит байт или слово данных из аккумулятора в указанный порт ввода-вывода.

Если информация выводится в порт с адресом в диапазоне 0–FF16, номер порта может быть задан либо в самой команде, либо предварительно загружен в регистрDX. Для вывода информации в порты с номерами, превышающимиFF16, может использоваться только косвенная адресация, когда номер порта предварительно загружен в регистрDX.

Флажкине изменяются.