Эти флажки могут быть использованы
Эти флажки могут быть использованы для условных переходов.
Младший байт регистра состояния содержит флажки особых случаев сопроцессора: переполнение стека, потеря точности, потеря значащих разрядов, численное переполнение, деление на ноль, денормализация, недействительная операция. Если соответствующий особый случай возник и не был замаскирован (в слове управления), это приведет к генерации центральным процессором особого случая сопроцессора (#16).
Младшее слово регистра управления содержит биты масок особых случаев. Сопроцессор допускает индивидуальное маскирование особых случаев. Если тот или иной особый случай замаскирован, при возникновении соответствующей ситуации сопроцессор выполняет некоторые заранее определенные внутренние действия, которые зачастую приемлемы для большинства применений. Например, если замаскирован особый случай деления на ноль, то выполнение операции 85,32/0 даст результат + ?.
Старшее слово регистра управления содержит два поля: управление точностью PC (биты 8 и 9) и управление округлением RC (биты 10 и 11). Биты управления точностью можно использовать для понижения точности вычислений. По умолчанию используется расширенная точность (PC = 112), можно также использовать двойную точность (PC = 102) и одинарную точность (PC = 002) по стандарту IEEE-754.
Если результат численной операции не может быть точно представлен в выбранном формате, сопроцессор выполняет округление в соответствии с полем RC (табл. 8.3). По умолчанию RC = 00. В примерах в табл. 7.3 сделана попытка представить числа +2,23 и +2,05 в виде двоичных вещественных чисел с 3-битной дробной частью мантиссы. В этом формате нельзя подобрать точное двоичное значение для этих чисел. Ближайшие к ним представимые числа - +2,00 (+1,000E21) и +2,25 (+1,001E21).
RC | Режим | Пример 1 1,000E21 < 2,23E100 < 1,001E21 -1,001E21 < -2,23E100 < -1,000E21 | Пример 2 1,000E21 < 2,05E100 < 1,001E21 -1,001E21 < -2,05E100 < -1,000E21 |
00 | Округление к ближайшему (или четному) | 2,23E100 ? 1,001E21-2,23E100 ? -1,001E21 | 2,05E100 ? 1,000E21-2,05E100 ? -1,000E21 |
01 | Округление вниз (к ?) | 2,23E100 ? 1,000E21-2,23E100 ? -1,001E21 | 2,05E100 ? 1,000E21-2,05E100 ? -1,001E21 |
10 | Округление вверх (к +?) | 2,23E100 ? 1,001E21-2,23E100 ? -1,000E21 | 2,05E100 ? 1,001E21-2,05E100 ? -1,000E21 |
11 | Округление к нулю (усечение) | 2,23E100 ? 1,000E21-2,23E100 ? -1,000E21 | 2,05E100 ? 1,000E21-2,05E100 ? -1,000E21 |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий