Курс лекций для студентов заочного факультета самара
Вид материала | Курс лекций |
Содержание4.4.Регистры математического сопроцессора. 4.4.2.Регистр управления (cw) 4.4.3.Регистр состояния. 4.4.4. Регистр тэгов (признаков). 4.4.5.Указатели особого случая. |
- Курс лекций для студентов заочного и очно-заочного образования рпк «Политехник», 941.31kb.
- Курс лекций для студентов очного и заочного отделения специальностей 1-25 01 10 коммерческая, 830.45kb.
- Курс лекций для студентов заочного обучения Бурмистрова Л. А., Финансы предприятий:, 1991.45kb.
- Методические указания для студентов 1 курса заочного отделения исторического факультета, 244.82kb.
- В. С. Юрчук философия права курс лекций, 1556.93kb.
- Планы семинарских занятий на 2011-2012 учебный год (6 часов) по предмету «Экономическая, 205.43kb.
- Курс лекций Санкт-Петербург 2007 удк 342. 9 Ббк 67. 401 Б83 Рецензенты, 6052.89kb.
- Тексты лекций для студентов заочной формы обучения всех специальностей москва 2001, 2466.08kb.
- Краткий конспект лекций по дисциплине «Основы лесоводства и лесной таксации» Для студентов, 923.35kb.
- Лекций для студентов 4 курса педиатрического факультета, переведенных на контролируемую, 18.72kb.
4.4.Регистры математического сопроцессора.
4.4.1.Численные регистры (регистровый стек).
Предназначен для выполнения вычислительных операций. Регистровый стек состоит из восьми регистров по 80 бит каждый, в которых представлены вещественные числа в расширенном формате. Адресация численных регистров реализована следующим образом: логический номер регистра, указанного в команде, процессор суммирует с содержимым поля ST (вершина стека) в регистре состояний. Сумма по модулю 8 определяет используемый численный регистр. Для удобства математических расчетов код и результат операции могут замещать значения операндов и использоваться дальше в вычислениях.
| 101 | | 79 | 78 | 63 | 0 | | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
ST | 5 | | R0 | S | E | M | ST(3) | ||||
| | R1 | | ST(4) | |||||||
в слове | | R2 | | ST(5) | |||||||
Состояния | | R3 | | ST(6) | |||||||
| | R4 | | ST(7) | |||||||
| | R5 | Вершина | ST(0) или ST | |||||||
| | R6 | | ST(1) | |||||||
| R7 | | ST(2) |
Числовой стек имеет кольцевую организацию. Если стек заполнен полностью, то есть ST = 111, то операция включения в стек вызывает перезапись в вершину стека ST = 000 ( при обработке особых случаев сопроцессора посредством обращения к системе пррываний центрального процессора) или особый случай недействительной операции (при формировании специальных значений в особых случаях сопроцессора).
4.4.2.Регистр управления (cw)
Предназначен для управления работой сопроцессора. Имеет размер – 16 бит.
15 13 | 12 | 11-10 | 9-8 | 7 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
| IC | RC | PC | | PM | UM | OM | ZM | DM | IM | ||
IM -маска недействительной операции | = 0 - прерывания | | ||||||||||
DM -маска денормализованного операнда | разрешены | | ||||||||||
ZM -маска деления на нуль | = 1 – формирование | | ||||||||||
OM -маска переполнения | специальных значений | | ||||||||||
UM -маска антипереполнения | | | ||||||||||
PM -маска неточного результата | | |
PC - поле управления точностью:
11 - расширенная точность (по умолчанию);
10 - двойная точность;
00 - одинарная точность.
RC - поле управления округлением:
00 - к ближайшему числу (по умолчанию);
01 - округление к минус бесконечности;
10 - округление к плюс бесконечности;
11 - округление к нулю.
IC - поле управления бесконечностью: (для 80287)
0 - проективный режим (по умолчанию);
1 - аффинный режим.
С 80387 не используется - по умолчанию всегда аффинный режим.
4.4.3.Регистр состояния.
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
B | C3 | | ST | | C2 | C1 | C0 | ES | SF | PE | UE | OE | ZE | DE | IF | |
| | | | | | | | | Флагстека | флаги особых случаев |
Флаги (0-6 биты):
IE - недействительная операция;
DE - денормализованный операнд;
ZE - деление на нуль;
OE – переполнение;
UE – антипереполнение;
PE - точность (неточный результат);
SF- флаг стека (с 80387 сопроцессора).
При возникновении особого случая, не зависимо от того, замаскирован он или нет, автоматически выставляется флаг особого случая, равный единице. Явно сбросить флаги должен программист, загружая в регистр состояния новое значение соответствующих флагов.
ES - бит суммарной ошибки, устанавливается в единицу, когда команда порождает любой особый случай. C0, C1, C2, C3 - коды условий, являющиеся результатом сравнения или команды нахождения остатка. Интерпретация кодов условий зависит от конкретной команды.
ST - поле вершины стека, содержит физический номер регистра, являющийся вершиной стека.
B - бит занятости, равен единице, когда процессор выполняет команду или сигнализирует прерывание, если сопроцессор свободен, то B равен нулю. Бит занятости показывает занятость численного операционного устройства сопроцессора, в которое входит числовой стек и регистр тэгов.
4.4.4. Регистр тэгов (признаков).
15 | 1413 | 1211 | 109 | 87 | 65 | 43 | 21 | 0 | |||||||
ТэгR7 | ТэгR6 | ТэгR5 | ТэгR4 | ТэгR3 | ТэгR2 | ТэгR1 | ТэгR0 |
Каждое поле соответствует состоянию численного регистра (соответствие устанавливается на уровне физических имен регистров - RO:R7):
00 – в регистре действительное число (любое конечное число , не равное нулю, ненормализованное число считается действительным в 80287);
01 – нуль;
10 - недействительное число (нечисло, бесконечность, денормализованное число или ненормализованное число в 80387 и последующих версиях устройства с плавающей точкой);
11 - пустой регистр.
Регистр считается пустым, если он не был инициализирован, или его содержимое было “извлечено” из стека. Процессор использует это состояние тэга для обнаружения переполнения стека (слишком много включений) или антипереполнения стека (слишком много извлечений). При попытке извлечь число из пустого регистра возникает особый случай недействительной операции. Когда этот особый случай замаскирован (прерывания запрещены), процессор корректирует ST обычным способом и возвращает неопределенность как результат операции.
4.4.5.Указатели особого случая.
Предназначены для процедур обработки особых случаев. Они имеют два формата в зависимости от работы 80287 в реальном или защищенном режиме.
Реальный режим | Защищенный режим | |||||||
15 | 0 | 31 387 | 15 | 0 | ||||
Адрес команды (0-15) | | смещ. | Смещение команды | |||||
адрес ком 16-19 | | код операции 0-10 | | | Селектор команды | |||
Адрес операнда (0-15) | | смещ. | Смещение операнда | |||||
Адрес опер 16-19 | | | | Селектор операнда | ||||
15 | 12 | 11 | 0 | | ||||
20-разрядные адреса команды и операнда и 11 младших разрядов кода операции | Селектор плюс смещение подозрительной команды и ее операнда |