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

Значение бесконечность

Сопроцессор имеет средства для представления значения бесконечность. Это значение формируется с помощью специальных битовых значений. Формат регистра стека сопроцессора, содержащего значение бесконечность, приведен на рис. 19.14.

Рис. 19.14. Представление значения бесконечность в регистре стека сопроцессора

Рисунок 19.14 демонстрирует, что значение бесконечность может иметь знак, при этом значения мантиссы и характеристики фиксированны. Именно в этом заклю­чается отличие значения бесконечность от остальных специальных значений. Среди причин, приводящих к формированию значения бесконечность, можно выделить переполнение и деление на нуль. При формировании значения беско­нечность в некотором регистре стека, в соответствующем теге регистра twr фор­мируется специальное значение (10).

Нечисла

К нечислам относятся такие битовые последовательности в регистре стека сопро­цессора, которые не совпадают ни с одним из рассмотренных выше форматов значений. Нечисло должно иметь единичную мантиссу и любую мантиссу, кроме 100...00, которая зарезервирована для значения бесконечность. Различают два тина нечисел:

SNAN (Signaling Noil a Number) — сигнальные нечисла;

QNAN (Quiet Non A Number) — спокойные (тихие) нечисла.

Сигнальное нечисло — битовое значение с единичным значением поля характе­ристики и мантиссы, первый бит которой, следующий за первым единичным зна­чащим битом мантиссы, равен нулю (рис. 19.15, а). Сопроцессор реагирует на появление этого числа в регистре стека возбуждением исключения недействитель­ная операция. Программисты могут формировать эти числа в регистре стека со­процессора преднамеренно, например, для того чтобы искусственно возбудить в нужной ситуации указанное исключение. Очевидно, что именно но этой причи­не данные числа называются сигнальными. Если спять маску у флага недействи­тельная операция в регистре cwr, то будет вызван обработчик, который выполнит заданные программистом действия.

Спокойное нечисло — битовое значение с единичным значением полей характе­ристики и мантиссой, первые два бита которой равны единице (рис. 19.15, б).

Сопроцессор самостоятельно не формирует сигнальных чисел, но в качестве ре­акции па определенные исключения он может формировать спокойные нечисла, например, нечисло вещественная неопределенность. Его значение показано на рис. 19.15, о. Вещественная неопределенность формируется как маскированная реак­ция сопроцессора на исключение недействительная операция (см. раздел «Исклю­чения сопроцессора и их обработка» в конце урока). Другие спокойные нечисла могут формироваться после выполнения команд, в которых хотя бы один из опе­рандов был спокойным нсчислом. Это может породить цепную реакцию, которая приведет к ошибочному результату. Поэтому в процессе вычислений рекоменду­ется периодически контролировать результаты исполнения команд на предмет появления спокойных нечисел.

При формировании нечисла в некотором регистре стека, в сооветствующем теге регистра twr формируется специальное значение (10).