Этот класс включает в себя недопустимые операции, определенные в стандарте IEEE 854. Модуль обработки операций с плавающей точкой будет выдавать сообщение о недопустимой операции в любом из перечисленных в Таблице 16-11 случаев. В этой таблице показаны также ответы модуля обработки операций с плавающей точкой при маскированном исключении недопустимой операции. Если исключение не маскировано, то вызывается обработчик исключений и операнды остаются неизмененными. Обычно недопустимая операция указывает на ошибку в программе.
Таблица 16-11. Маскированные Ответы на Недопустимые Операции +---------------------------------------------------------------+| Условие | Маскированный Ответ |+-------------------------------+-------------------------------|| | || Любая арифметическая операция | Возвращает неопределенность || над неподдерживаемым форматом.| типа QNaN. || | || Любая арифметическая операция | Возвращает QNaN (смотрите || над сигнальным SNaN. | раздел "Правила генерирования || | QNaN"). || | || Операции сравнения и тестиро- | Устанавливает коды условия || вания; один или оба операнда | как "не сравнимы". || являются типом NaN. | || | || Сложение противоположных по | Возвращает неопределенность || знаку бесконечностей или | типа QNaN. || вычитание бесконечностей с | || одинаковым знаком. | || | || Умножение: oo x 0 или 0 x oo. | Возвращает неопределенность || | типа QNaN. || Деление: oo / oo или 0 / 0. | Возвращает неопределенность || | типа QNaN. || Команды взятия остатка | Возвращает неопределенность || FPREM, FPREM1, когда делитель | типа QNaN. Устанавливает || равен 0 или делимое равно oo. | бит C2. || | || Тригонометрические команды | Возвращает неопределенность || FCOS, FPTAN, FSIN, FSINCOS, | типа QNaN. Устанавливает || когда аргумент равен oo. | бит C2. || | || FSQRT над отрицательным опе- | Возвращает неопределенность || рандом (за исключением FSQRT | типа QNaN. || (-0) = -0), FYL2X над отрица- | || тельным операндом (за исклю- | || чением FYL2X (-0) = -oo), | || FYL2XP1 над отрицательным | || операндом, меньшим -1. | || | || Команды FIST(P), когда ре- | Сохраняет целочисленную || гистр-источник пуст или содер-| неопределенность. || жит NaN, oo, или выходит за | || представимый диапазон приемни-| || ка. | || | || Команда FBSTP, когда регистр- | Сохраняет упакованную || -источник пуст или содержит | целочисленную неопределен- || NaN, oo, или превышает 18 | ность. || десятичных цифр. | || | || Команда FXCH, когда один или | Заменяет пустые регистры на || оба регистра помечены как | неопределенность типа QNaN, а || пустые. | затем обрабатывает измененные || | регистры. || | |+---------------------------------------------------------------+