Прерывание 19 - Исключение плавающей точки SIMD ( #XF - SIMD Floating-Point Exception )
Тип исключения - Fault (ошибка).
Описание
Означает, что процессор обнаружил ошибку при выполнении команды SSE или SSE2. Соответствующими флагами в регистре MXCSR можно маскировать отдельные условия возникновения исключения. Есть 6 условий генерации исключения:
Недопустимая команда (#I)
|
Деление на нуль (#Z)
|
Денормализованный операнд (#D)
|
Числовое переполнение (#O)
|
Числовое недополнение (#U)
|
Неточный результат (Precision) (#P)
| | | | | | |
При одновременном возникновении нескольких исключений над одним операндом, они обрабатываются согласно их приоритетам.
Приоритет исключений SIMD
Приоритет
| Описание
|
1 (Высший)
| Недопустимый операция над операндом SNaN (или любым NaN в операциях для максимума, минимума, сравнения и преобразования).
|
2
| Операнд QNaN 1.
|
3
| Все остальные исключения недопустимых операций или деление на нуль 2.
|
4
| Исключение денормализованного операнда 2.
|
5
| Числовое переполнение или недополнение, возможно, совместно с неточным результатом 2.
|
6 (Низший)
| Неточный результат
|
Примечания:
1.
| При делении QNaN на нуль будет сгенерировано это исключение, а не исключение деления на 0.
|
2.
| Если замаскировано, то исключение не возникнет.
|
Код ошибки нет.
Указатель кода: сохранённые значения CS:EIP указывают на команду SSE или SSE2, вызвавшую исключение.
Изменение состояния программы: нет, если исключение на замаскировано, т.к. команда, вызвавшая исключение, не была выполнена.
| Copyright © Александр Семенко.
|
|