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

11011xxx ModRegR/M

ESC opr/m

выполнение операции сопроцессора op над операндом r/m

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

Процессор, обнаружив команду ESC(разряды 7-3 первого байта кода команды содержат комбинацию 11011), выдаёт сигнал обращения к сопроцессору. Сопроцессор фиксирует код своей операции, содержащийся в младших трёх разрядах байта кода команды. После этого основной процессор выбирает байтModRegR/Mи, если необходимо, один или два байта отклонения; формирует адрес операнда в памяти, если таковой задан байтомModRegR/M, и выставляет его на шину адреса. Сопроцессор отслеживает этот процесс и при необходимости может читать или записывать данные в памяти по адресу, сформированному для него основным процессором. Кроме того, сопроцессор может интерпретировать поля байтаModRegR/Mкак номера его внутренних регистров или как расширения кода операции.

Поскольку операция сопроцессора может занять длительное время, основной процессор, завершив указанные выше действия, продолжает выполнение своей программы. Если необходимо дождаться завершения операции сопроцессора, после команды ESCдолжна следовать командаWAIT.

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

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

Хотя аппаратная архитектура микропроцессора 8086/8088 позволяла подключить к нему сопроцессор произвольного назначения, был разработан и получил распространение только арифметический сопроцессор 8087. Описание его системы команд не входит в задачу данной публикации.

      1. Hlt– останов процессора

F4

HLT

останов процессора

Описание.По этой инструкции процессор прекращает дальнейшее выполнение операций и переходит в состояние останова.

Работа может быть возобновлена выполнением сброса, при возникновении немаскируемого или незамаскированного маскируемого прерывания. В случае возобновления работы по прерыванию в стек будет записан адрес команды, следующей за инструкцией HLT.

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

      1. Idiv– деление знаковое

F6 /7

IDIV r/m8

AL:= AX DIV r/m8

AH:= AX MOD r/m8

F7 /7

IDIV r/m16

AX:= DX, AX DIV r/m16

DX:= DX, AX MOD r/m16

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

Делимое имеет размер 16 или 32 разряда. В первом случае оно располагается в регистре AX, во втором занимает регистровую паруDX:AX(старшая часть – в регистреDX, младшая – в регистреAX). Делитель размещается в регистре или ячейке памяти, определяемой байтомModRegR/M. При 16-разрядном делимом делитель имеет размер байт, а при 32-разрядном делимом – слово.

Частное и остаток имеют разрядность, совпадающую с разрядностью делителя, т.е. в два раза меньше, чем у делимого. Знак остатка всегда совпадает со знаком делимого. В операции деления 16-разрядного числа на 8-разрядное частное располагается в регистре AL, остаток – в регистреAH. При делении 32-разрядного числа на 16-разрядное частное будет находиться в регистреAX, а остаток – в регистреDX.

Если производится попытка деления на 0 или частное не помещается в отведённую разрядность, вырабатывается прерывание по ошибке деления (вектор 0).

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