4.7. Система команд арифметического сопроцессора 8087 |
483 |
Среда и полное состояние NDCP. Содержи- |
|
|
|
Memory |
мое регистров слова управления CW, слова состоя- |
Offset |
is___________________ о |
|
ния SW, слова тэгов TW, указателя инструкции IP и |
|
______Control Word_____ |
|
указателя данных DP называется средой NDCP (Еп- |
+2 |
______ Status Word______ |
~ |
vironment — 7 слов; рис. 4.42). |
|
|
----------- 7ag Worrf----------- |
g |
Среда NDCP и содержимое регистрового стека |
+6 |
— |
Instruction Pointer |
— |
.§ |
называется полным |
состоянием NDCP (47 слов; |
+10 |
|
|
Data Pointer |
|
^ |
рис. 4.43). Имеются команды сохранения в памяти и |
— |
|
|
— |
загрузки из памяти среды и полного состояния: |
|
-------- -----:— —— --------------- |
FSTENV dst и FLDENV src — сохранение в памяти |
+ |
— |
raction |
— |
|
и загрузка из памяти среды, FSAVE dst и FRSTOR |
|
— |
Fraction 3 1 1 6 |
— g |
src — сохранение в памяти и загрузка из памяти |
|
— |
Fraction 47 + 32— |
й |
uT |
полного состояния. |
|
|
|
— |
Fraction 63 - 48 |
— |
|
Команда FSTENV dst используется в основном |
|
—— - хР °~ п1 ^ 0------------- |
в подпрограммах |
обработки |
незамаскированных |
+ |
|
— |
Fraction 1 5 - 0 |
— |
особых случаев, так как предоставляет детальную |
|
|
— |
Fraction 31 - 16 |
— |
информацию о причине, вызвавшей особый случай. |
|
— |
Fiaction 47 - 32 |
— |
н |
Команды FSAVE dst и FRSTOR src необходи- |
|
|
— |
Ггас,юп 63 - 48 |
_ |
мы в подпрограммах обработки запросов прерыва- |
|
—— Exponent 1 4 - 0 ------------- |
ний от внешних устройств, в которых и с п о л ь з у |
ю т с я __________________________ |
команды NDCP. Поскольку при вызове подпрограм- |
+^4 |
__ |
Fraction 15-5-0 |
__ |
|
'мы происходит переключение на решение другой |
|
_ Fraction 31 - 1 6 |
_ р |
задачи, то текущее |
состояние |
следует сохранить |
|
__ |
Fraction 47 - 3 2 |
__ |
н |
в памяти, а при возврате из подпрограммы восстано- |
|
__ |
Fraction 63 + 48 |
__ |
|
вить его. Для изучения арифметического сопроцес- |
+92 |
S |
Exponent 1 4 - 0 _________ |
сора 8087 дополнительно можно привлечь литерату |
|
|
|
|
|
|
ру [13, 20, 21]. |
|
|
Р ис- 4.43. Формат полного состояния |
4.7. Система команд арифметического сопроцессора 8087
По назначению команды NDCP разделяются на 6 групп: команды передачи данных (Data Transfer), команды сравнения (Comparison), команды загрузки констант (Constants), арифмети ческие команды (Arithmetic), трансцендентные команды (Transcendental) и команды управления сопроцессором (Processor Control).
Ф орм аты команд NDCP 8087. Ниже приведены форматы всех команд NDCP. Если ко манда способна адресовать операнд в памяти (в команде есть поле г/т), то она может содер жать еще один или два байта смещения (dispS или disp 16). Режимы адресации данных в памяти такие же, что и в МП 8086, т. е. задаются полями mod и r/т в соответствии с табл. 4.9. Только для значения поля mod = 11 поле r/m = ST(/), т. е. адресуются не регистры МП, а регистры ре гистрового стека NDCP.
Время выполнения команд указано в числе тактов сигнала CLK. Если команда адресует операнд в памяти, то к указанному числу тактов следует добавить число тактов еа, затрачивае мое на вычисление эффективного адреса ЕА, которое зависит от используемого в команде ре жима адресации данных (см. § 4.2). Минимальная длина команд NDCP составляет два байта, и первый байт всех команд содержит код D7_3 = 1 1 0 1 1 = ESCAPE — признак команд NDCP.