Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на печать11.doc
Скачиваний:
41
Добавлен:
11.06.2015
Размер:
1.04 Mб
Скачать

13.Особые ситуации в численных расчетах.

При выполнении команд FPU могут возникать шесть типов особых ситуаций(исключений). При возникновении исключения соответствующий флаг в регистре SR устанавливается в 1 и , если маска этого исключения в регистре CR не установлена, вызывается обычное прерывание INT 10 или irq13 (int 75h), Обработчик которого может прочитать регистр SR, чтобы определить тип исключения. Если бет маски наступившего исключения в регистре CR установлен в 1, по умолчанию выполняются след действия

  1. Неточный результат: результат округляется с битами RC. При этом флаг С1 показывает в какую сторону произошло округление

  2. Антипереполнение: результат слишком мал чтобы быть представленным обычным числом, - он преобразуется в денормализованное число

  3. Переполнение: результат преобразуется в бесконечность соответствующего знака

  4. Деление на ноль: результат преобразуется в бесконечность соответствующего знака

  5. Денормализованный операнд: вычисление продолжается как обычно

  6. Недействительная операция: результат определяется из таблицы

Операция

Результат

Ошибка стека

неопределенность

Операция с неподдерживаемым числом

Неопределенность

Операция SNAN

QNAN

Сравнение числа NAN

C0=C2=C3=1

Сложение бесконечностей с одним знаком или вычитание с разным

Неопределенность

Умножение нуля на бесконечность

Неопределенность

Деления бесконечности на бесконечность или 0/0

Неопределенность

Команда FPREM или FPREM1, если делитель 0 или делимое бесконечность

Неопределенность и С2 = 0

Тригонометрические операции над бесконечностью

Неопределенность и С2=0

Корень или логарифм, если и x<0

Неопределенность

FBSTP, Если регистр источник пуст, содержит NAN, бесконечность или превышает 18 десятичных знаков

Десятичная неопределенность

FXCH, если один из операндов пуст

Неопределенность

14.Арифметический сопроцессор: архитектура сопроцессора; команды сопроцессора

Появился в 1981 г. Следующая версия 287 с поддержкой защищённого режима. В 1986 г. Появляется стандарт для работы над операциями с плавающей точкой ( IEEE854). Начиная с 486 сопроцессор встроен в основной процессор.

Сопроцессор предназначен для выполнения операций над числами с плавающеё точкой, арифметическими операциями, трансцендентними и т.д. Архитектура у всех сопроцессоров одинакова( почти). Основа 8 численных регистров.

ST3

ST(ST0)

ST1

ST2 ST – текущая вершина стека.

Есть ещё регистр управления, состояния, указатель команды и указатель операнда. Два указателя при особом случае от.....( хз что за слово) этими самыми регистрами. Также есть регистр тегов.

Регистр управления

////

RC

PC

////

PM

UM

ZM

OM

DM

IM

11 10 9 8 5 4 3 2 1 0

Первые 6 бит – маски особых случаев.

UM – исчезнование порядка;

PM – точность;

ZM – деление на 0;

OM – переполнение;

IM – недействительная операция;

DM – денормализованная операция;

11 extended

PC – управление точностью -- 10 double

00 float

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]