Нечисла
К нечислам относятся такие битовые последовательности в регистре стека сопроцессора, которые не совпадают ни с одним из рассмотренных выше форматов значений. Нечисло должно иметь единичную мантиссу и любую мантиссу, кроме 100...00, которая зарезервирована для значения бесконечность. Различают два тина нечисел:
SNAN (Signaling Noil a Number) — сигнальные нечисла;
QNAN (Quiet Non A Number) — спокойные (тихие) нечисла.
Сигнальное нечисло — битовое значение с единичным значением поля характеристики и мантиссы, первый бит которой, следующий за первым единичным значащим битом мантиссы, равен нулю (рис. 19.15, а). Сопроцессор реагирует на появление этого числа в регистре стека возбуждением исключения недействительная операция. Программисты могут формировать эти числа в регистре стека сопроцессора преднамеренно, например, для того чтобы искусственно возбудить в нужной ситуации указанное исключение. Очевидно, что именно но этой причине данные числа называются сигнальными. Если спять маску у флага недействительная операция в регистре cwr, то будет вызван обработчик, который выполнит заданные программистом действия.
Спокойное нечисло — битовое значение с единичным значением полей характеристики и мантиссой, первые два бита которой равны единице (рис. 19.15, б).
Сопроцессор самостоятельно не формирует сигнальных чисел, но в качестве реакции па определенные исключения он может формировать спокойные нечисла, например, нечисло вещественная неопределенность. Его значение показано на рис. 19.15, о. Вещественная неопределенность формируется как маскированная реакция сопроцессора на исключение недействительная операция (см. раздел «Исключения сопроцессора и их обработка» в конце урока). Другие спокойные нечисла могут формироваться после выполнения команд, в которых хотя бы один из операндов был спокойным нсчислом. Это может породить цепную реакцию, которая приведет к ошибочному результату. Поэтому в процессе вычислений рекомендуется периодически контролировать результаты исполнения команд на предмет появления спокойных нечисел.
При формировании нечисла в некотором регистре стека, в сооветствующем теге регистра twr формируется специальное значение (10).
Дата добавления: 2015-04-15; просмотров: 947;