На главную Назад
Добро пожаловать, уважаемый посетитель!

Команды управления микросхемы 8087 ничего не вычисляют, однако

они необходимы для управления ее работой.На Фиг. 7.12 показан

литсинг ассемблера команд управления сопроцессора 8087.

 

Многие из команд управления могут выполняться без синхронизации

с микропроцессором 8088.На Фиг. 7.12 показаны эти команды в

форме, ассемблированной с использованием команды WAIT, а код

операции в поле комментариев изображает команды без команды WAIT.

Ассемблеру сообщается о том, что операция выполняется без ожидания,

с помощью символов FN в качестве первых двух символов мнемоники

команды.

 

На Фиг. 7.13 перечислены действия всех команд управления

сопроцессором 8087.Команды FENI, FDISI, FCLEX обслуживают особые

ситуации в сопроцессоре 8087.В управляющем регистре содержится

маска прерываний, которая выделяет те ситуации, которые могут

вызвать прерывание.Маской прерываний сопроцессора 8087 в целом

управляют команды FENI и FDISI; эти команды аналогичны

соответственно командам STI и CLI микропроцессора 8088, за

исключением того, что они управляют прерываниями только от

сопроцессора 8087.Команда FCLEX сбрасывает биты особых ситуаций

регистра состояния.Микросхема 8087 помнит все особые ситуации,

так что если последовательность команд возбудила более одного типа

ошибки, все эти ошибки будут отмечены в регистре состояния.И

команда FCLEX - единственный способ сброса этих флагов.

 

Команда Действие

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

FINITИнициализация 8087. Переустановка программ

FENIОсвобождение прерываний по исключительным состояниям

FDISIБлокирование прерываний по исключительным состояниям

FLDCWЗагрузка управляющего регистра 8087 из памяти

FSTCWСохранение управляющего регистра 8087 в память

FSTSWСохранение регистра состояния 8087 в память

FCLEXОчистка индикаторов исключительных состояний

FSTENVСохранить оборудование 8087 в память

FLDENVЗагрузить оборудование 8087 из памяти

FSAVEСохранить состояние 8087 в память

FRSTORЗагрузить состояние 8087 из памяти

FINCSTP Увеличеть указатель вершины стека

FDECSTP Уменьшить указатель вершины стека

FFREEОсвободить регистр стека

FNOPНичего не делать

FWAITИдентично WAIT

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

 

Фиг. 7.13 Управляющие действия

 

Мы уже рассмотрели управляющее слово и слово состояния в

составе программной модели сопроцессора 8087.Команды управления

FLDCW, FSTCW и FSTSW загружают и сохраняют эти регистры.

Рабочая среда сопроцессора 8087 содержит все регистры

микросхемы, за исключением стека данных; рабочая среда состоит из

14 байт.Рисунок 7.14 показывает структуру рабочей среды после

того, как сопроцессор 8087 записал ее в память.Запись рабочей

среды - это обычное действие при обработке особой ситуации в

сопроцессоре 8087, так как рабочая среда содержит все данные об

особых ситуациях.Один 20=битовый адрес указывает на последнюю

команду, которую выполнил сопроцессор 8087.Другой адрес указывает

последнюю из вызывавшихся ячеек данных.Код последней

выполнявшейся сопроцессором 8087 команды тоже входит в рабочую

среду.

 

ВОЗРАСТАНИ АДРЕСОВ

ДДДДДДДДДДДДДДДДДДДДДї

150і

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі

іУПРАВЛЯЮЩЕЕ СЛОВОі+0і

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґі

іСЛОВО СОСТОЯНИЯі+2і

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґі

іСЛОВО ПРИЗНАКАі+4і

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґі

іIP15-0і+6

УКАЗАТЕЛЬГДДДДДДДДДДДВДВДДДДДДДДДДДДДДДДДґ

КОМАНДЫі IP19-16і0і КОД ОПЕРАЦИИі+8

ГДДДДДДДДДДДБДБДДДДДДДДДДДДДДДДДґ

іOP15-0і+10

УКАЗАТЕЛЬГДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДґ

ОПЕРАНДАі OP19-16і0і+12

АДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДЩ

 

Фиг. 7.14 Рабочая среда 8087

 

Состояние микросхемы 8087 - это рабочая среда вместе с

регистрами данных.Так как в сопроцессоре 8087 имеется восемь

10=байтовых регистров, состояние содержит 94 байта.Рисунок 7.15

иллюстрирует структуру состояния сопроцессора 8087, записанного в

память.Структура состояния идентична рабочей среде с добавленным

в конце регистровым стеком.Программа может записать состояние

сопроцессора 8087, когда происходит переключение задач, или если в

обработчике прерываний потребуется использование сопроцессора 8087.

Когда ранее выполнявшаяся задача снова получает управление,

состояние может быть программно восстановлено.

 

Две команды - FINCSTP и FDECSTP - взаимодействуют с указателем

стека; они перемещают его.Все данные в регистрах остаются на

местах, т.е.слово "этикеток" не изменяется.Увеличение указателя

стека не эквивалентно извлечению данных из стека, так как

"этикетка" для этих данных все же показывает, что в регистре есть

данные.Попытка загрузить какое=либо число в такой стек приведет к

появлению особой ситуации - переполнению стека.Команда FFREE

освобождает ячейку стека, устанавливая "этикетку" для этой ячейки

так, что она показывает отсутствие данных в ячейке.Но команда

FFREE не меняет указатель стека, и если вам просто нужно выбросить

верхний элемент из стека, то в большинстве случаев это легче

сделать с помощью арифметической команды.

A

ВОЗРАСТАНИЕ АДРЕСОВ

ДДДДДДДДДДДДДДДДДДДДДї

150і

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі

іУПРАВЛЯЮЩЕЕ СЛОВОі+0і

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґі

іСЛОВО СОСТОЯНИЯі+2і

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґі

іСЛОВО ПРИЗНАКАі+4і

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґі

іIP15-0і+6

УКАЗАТЕЛЬГДДДДДДДДДДДВДВДДДДДДДДДДДДДДДДДґ

КОМАНДЫі IP19-16і0і КОД ОПЕРАЦИИі+8

ГДДДДДДДДДДДБДБДДДДДДДДДДДДДДДДДґ

іOP15-0і+10

УКАЗАТЕЛЬГДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДґ

ОПЕРАНДАі OP19-16і0і+12

ГДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 15-0 і+14

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 31-16і+16

ЭЛЕМЕНТ ВЕРШИ-ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

НЫ СТЕКА:STіМАНТИССА 47-32і+18

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 63-48і+20

ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іsіПОРЯДОК 14-0 і+22

ГДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 15-0 і+24

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 31-16і+26

СЛЕДУЮЩИЙГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

ЭЛЕМЕНТ СТЕКА іМАНТИССА 47-32і+28

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 63-48і+30

ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іsіПОРЯДОК 14-0 і+32

ГДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

... . . . . . . ....

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 15-0 і+84

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 31-16і+86

ПОСЛЕДНИЙГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

ЭЛЕМЕНТ СТЕКАіМАНТИССА 47-32і+88

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іМАНТИССА 63-48і+90

ГДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

іsіПОРЯДОК 14-0 і+92

АДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

ПРИМЕЧАНИЯ:

S = Знак

Бит 0 каждого поля - самый правый младший бит соответствующего

поля регистра

бит 63 мантиссы - целый бит (подразумевая двоичная точка

находится рядом с ним, справа)

Фиг. 7.15 Состояние 8087


 

Mail.ru