Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29-32.doc
Скачиваний:
9
Добавлен:
23.04.2019
Размер:
220.67 Кб
Скачать

Регистр тегов

Этот регистр разделен на восемь двухбитовых полей, которые обозначаются TAG0...TAG7. Каждое поле относится к своему численному регистру.

Поля регистра тегов классифицируют содержимое "своего" численного регистра:

  • 00 - Регистр содержит действительное ненулевое число

  • 01 - В регистре находится нуль

  • 10 - Регистр содержит недействительное число - нечисло, бесконечность, неопределенность

  • 11 - Пустой неинициализированный регистр

Например, если все регистры сопроцессора были пустые, а затем в стек численных регистров было занесено одно действительное ненулевое значение, содержимое регистра тегов в шестнадцатиричном представлении будет 3FFFh.

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

Формат регистра управления (обозначение бита и его порядок):

  • IM , нулевой;

  • DM, первый;

  • ZM, второй;

  • OM,третий;

  • UM,четвертый;

  • PM,пятый;

  • IEM,седьмой (в Pentium не используется);

  • PC,восьмой и девятый;

  • RC,одинадцатый и десятый;

  • IC, двенадцатый;

Шестой, тринадцатый, четырнадцатый и пятнадцатый биты не используются.

В регистре управления биты 0...5 - маски особых случаев. Особые случаи иногда возникают при выполнении команд сопроцессора, например, при делении на нуль, переполнении и так далее.

Если все биты масок особых случаев равны нулю, особый случай вызывает прерывание центрального процессора INT 10h (обратите внимание, что это прерывание используется BIOS для работы с дисплейным адаптером). Если же особые случаи замаскированы установкой соответствующих бит в единичное состояние, прерывание не вырабатывается, а в качестве результата возвращается особое значение - бесконечность, нечисло и так далее.

Ниже приведена таблица масок особых случаев:

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

  • DM Денормализованный результат

  • ZM Деление на нуль

  • OM Переполнение

  • UM Антипереполнение

  • PM Особый случай при неточном результате

  • IEM Маскирование одновременно всех особых случаев вне зависимости от установки бит 0-5 регистра управления. Этот бит действителен только для сопроцессора 8087

Подробнее особые случаи и условия их возникновения будут описаны ниже.

Двухбитовое поле PC регистра управления управляет точностью вычислений в сопроцессоре:

  • 00 - Использование расширенной точности. Этот режим устанавливается при инициализации сопроцессора

  • 10 - Округление результата до двойной точности

  • 11 - Округление результата до одинарной точности

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

Двухбитовое поле RC задает режим округления при выполнении операций с вещественными числами:

  • 00 - округление к ближайшему числу, этот режим устанавливается при инициализации сопроцессора

  • 01 - округление в направлении к отрицательной бесконечности

  • 10 - округление в направлении к положительной бесконечности

  • 11 - округление в направлении к нулю

Ниже демонстрируются перечисленные режимы округления. Символами "o" обозначены точные значения вещественных чисел, символами "x" приближенные значения. Стрелки "<<" и ">>" указывают направление округления. В центре линии расположен нуль числовой оси, на ее левом и правом конце - отрицательная и положительная бесконечности.

* Округление в направлении к ближайшему числу:

-беск.<-o-<<-x-------o---- 0 -----o-----x->>--o---->+беск.

* Округление в направлении к отрицательной бесконечности:

-беск.<-o-<<-x-------o---- 0 -----o---<<----x-o---->+беск.

* Округление в направлении к положительной бесконечности:

-беск.<-o-x-->>------o---- 0 -----o------x->>-o---->+беск.

* Округление в направлении к нулю:

-беск.<-o-x-->>------o---- 0 -----o---<<----x-o---->+беск.

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

Остальные два режима округления используют в интервальной арифметике. Для получения наиболее точного результата каждая команда (операция) выполняется два раза - первый раз с округлением в направлении к отрицательной бесконечности, второй раз - в направлении к положительной бесконечности. Точный результат лежит между полученными значениями. Заметьте, что здесь речь идет только об отдельных операциях, но не о том, чтобы выполнить всю программу вычислений вначале с одним режимом округления, а затем с другим.

Поле IC регистра управления предназначено для управления бесконечностью и может иметь два значения: 0 - проективный режим и 1 - афинный режим.

В проективном режиме существует только одна бесконечность, она не имеет знака. В афинном режиме имеется две бесконечности - положительная и отрицательная.

Афинный режим допускает выполнение многих операций с бесконечностями - сложение, умножение и так далее.

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