а не только нормализованные числа
чисел, а не только нормализованные числа с плавающей точкой,
команда FXAM определит, что же находится в вершине стека. На
Фиг. 7.21 показаны значения битов состояния в каждом случае.
Если при арифметической обработке вы не делаете что=либо из
ряда вон выходящее и не работаете на пределе разрядной сетки
сопроцессора 8087, то не нужно рассматривать никакие из приведенных
выше результатов команды FXAM; вы должны ожидать увидеть лишь
положительные либо отрицательные нормализованные числа или нули.
Если выясняется, что вершина стека пустая, то обычно выдается
ошибка. Программа может сделать такую проверку для контроля
параметра, переданного в вершине стека.
Остальные значения - это реакция микросхемы 8087 на ошибку.
Когда сопроцессор 8087 обнаруживает ошибку, он пытается возбудить
прерывание по особой ситуации, устанавливая соответствующие биты в
слове состояния. Однако если ситуация замаскирована с помощью
управляющего слова, сопроцессор 8087 сам реагирует на нее. Он
решает, какая реакция соответствует данной ошибке и возбуждает
появление специфического числа в регистре. Например, результат NAN
возникает, если операция некорректна, как в случае извлечения
квадратного корня из отрицательного числа. Бесконечность
появляется, если результат операции слишком велик для представления
с плавающей точкой.
C3 C2 C1 C0 Значение С3 С2 С1 С0 Значение
---------------------------------------------------------------------------------------------------
0 0 0 0 + Ненормально 1 0 0 0 + 0
0 0 0 1 + NAN 1 0 0 1 Пусто
0 0 1 0 - Ненормально 1 0 1 0 - 0
0 0 1 1 - NAN 1 0 1 1 Пусто
0 1 0 0 + Нормально 1 1 0 0 + Ненормальное
Содержание Назад Вперед