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

28 /r

SUB r/m8, r8

r/m8:= r/m8r8

29 /r

SUB r/m16, r16

r/m16:= r/m16r16

2A /r

SUB r8, r/m8

r8:= r8r/m8

2B /r

SUB r16, r/m16

r16:= r16 – r/m16

2C ib

SUB AL, imm8

AL:= AL – imm8

2D iw

SUB AX, imm16

AX:= AX – imm16

80 /5 ib

SUB r/m8, imm8

r/m8:= r/m8imm8

81 /5 iw

SUB r/m16, imm16

r/m16:= r/m16imm16

83 /5 ib

SUB r/m16, imm8

r/m16:= r/m16imm8

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

При вычитании 8-разрядного второго операнда из 16-разрядного первого (код операции 83) перед выполнением операции производится расширение знака второго операнда.

ФлажкиOF,SF,ZF,AF,CFиPFустанавливаются по обычным правилам. ФлажокCFсвидетельствует о наличии заёма в старший разряд результата.

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

Команда SUBиспользуется при вычитании двоичных чисел с разрядностью 8 или 16. Если требуется выполнить вычитание более длинных чисел, младшие их части вычитаются с помощью инструкцииSUB, а остальные – с помощью инструкцииSBB.

Совместно с командами десятичной коррекции сложения AASиDASинструкцииSUBиSBBобеспечивают вычитание двоично-десятичных распакованных и упакованных чисел.

      1. Test– логическое сравнение

84 /r

TEST r/m8, r8

r/m8 AND r8

85 /r

TEST r/m16, r16

r/m16 AND r16

A8 ib

TEST AL, imm8

AL AND imm8

A9 iw

TEST AX, imm16

AX AND imm16

F6 /0 ib

TEST r/m8, imm8

r/m8 AND imm8

F7 /0 iw

TEST r/m16, imm16

r/m16 AND imm16

Описание.Эта инструкция выполняет логическое сравнение двух операндов.

Сравнение выполняется путём выполнения операции “логическое И” между разрядами первого и второго операндов. Результат операции теряется, но производится соответствующая установка флажков.

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

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

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

      1. Wait– ожидание сопроцессора

9B

WAIT

переход в ожидание готовности сопроцессора

Описание.Эта инструкция приостанавливает дальнейшее выполнение программы до поступления сигнала готовности от сопроцессора.

Команда WAITиспользуется после инструкций математического сопроцессора. Она приостанавливает выполнение программы до тех пор, пока не будет закончена обработка последней команды сопроцессора.

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

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

Архитектура микропроцессоров 8086/8088 позволяет подключить к ним сопроцессор любого назначения, выполняющий те или иные дополнительные команды и, естественно, согласующий свою работу на уровне аппаратуры с основным процессором. Коды этих команд содержат в старших пяти разрядах первого байта комбинацию 11011; для основного процессора это команда ESC. Исторически сложилось, что единственным используемым сопроцессором стал арифметический сопроцессор 8087, содержащий мощную собственную систему команд. Её описание не входит в задачу данной публикации.