 В табл. 2.48 указан также результат выполнения ряда арифметических операций, когда элементами операндов являются «0» или «бесконечность». В этих случаях элементом результата становится код FFC00000h («неопределенность», см. табл.2.16), если установлено значение бита маски IM = 1 (исключение #I маскировано). Если же значение IM = 0, то реализуется исключение #I.
Команда SQRT[PS,SS] вычисляет значение квадратного корня из элементов исходного операнда ( ). Результаты этой операции в случаях, если элементом операнда является He-число или отрицательное число, указаны в табл. 2.49. Отметим, что данные результаты аналогичны приведенным в табл. 2.48 для исключительных случаев, возникающих при выполнении других арифметических операций.
Таблица 2.48 Результаты выполнения команд ADD[PS,SS], SUB[PS,SS], DIV[PS,SS], MUL[PS,SS], когда элементами операндов являются не-числа (NaN)
| | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Элементы операндов
| Результат при IМ=1
| Результат при IM=0
| SNaN1, SNaN2
| SNaN1 ® QNaN1
| Исключение типа #I
| SNaN1, QNaN2
| SNaN1 ® QNaN1
| Исключение типа #I
| QNaN1, SNaN2
| QNaN1
| Исключение типа #I
| QNaN1,QNaN2
| QNaN1
| QNaN1 (нет исключения)
| SNaN, число
| SNaN ® QNaN1
| Исключение типа #I
| число, SNaN
| SNaN ® QNaN1
| Исключение типа #I
| QNaN, число
| QNaN
| QNaN (нет исключения)
| число, QNaN
| QNaN
| QNaN (нет исключения)
| ¥ – ¥, ¥ * 0 ¥/¥, 0/0
| QNaN (FFC00000h)
| Исключение типа #I
|
Таблица 2.49
Результаты выполнения команды SQRT[PS,SS] с не-числами и отрицательными числами
| | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Элемент операнда
| Результат при IМ=1
| Результат при IM=0
| QNaN
| QNaN
| QNaN (нет исключения)
| SNaN
| SNaN ® QNaN
| Исключение типа #I
| Отрицательное число
| QNaN (FFC00000)
| Исключение типа #I
|
Все рассмотренные выше команды данной группы устанавливают значение признака DE = 1 и реализуют исключение #ХМ, если один из элементов исходных операндов представлен в денормализованном виде.
Команда RCP[PS,SS] вычисляет обратную величину операнда ( ), а команда RSQRT[PS,SS] - обратную величину квадратного корня из операнда ( ). Правила округления, определяемые значением поля RC в регистре MXCSR, не оказывают влияния на выполнение этих команд. Денормализованные операнды воспринимаются как нули соответствующего знака. Результат антипереполнения всегда округляется до нуля. Максимальная величина ошибки при выполнении этих команд составляет 1,5´2-12. Команды RSQRT[PS,SS] и RCP[PS,SS] не реализуют какие-либо исключения, поэтому контроль ошибок при их выполнении должен выполняться программными средствами.
|