Если модуль обработки операций с плавающей точкой встречает немаскированное условие исключения, то немедленно вызывается программный обработчик исключений перед тем как выполнить следующую команду WAIT или не управляющую команду с плавающей точкой. В зависимости от значения бита NE управляющего регистра CR0, обработчик исключений вызывается либо через вектор прерывания 16, либо через внешнее прерывание.
Если NE = 1, то немаскированное исключение с плавающей точкой обрабатывается через прерывание 16 непосредственно перед выполнением следующей команды WAIT или не управляющей команды с плавающей точкой. Прерывание 16 является вызовом операционной системы, которое в свою очередь вызывает обработчик исключения. В Главе 9 приведены общие соображения относительно исключений и прерываний процессора i486.
Если NE = 0 (и ввод IGNNE# не является активным), то немаскированное исключение с плавающей точкой замораживает процессор непосредственно перед выполнением следующей не управляющей команды с плавающей точкой или команды WAIT. Замороженный процессор ожидает внешнее прерывание, которое должно исходить от внешнего аппаратного обеспечения в ответ на вывод FERR# процессора. (Вне зависимости от значения NE, причиной активности вывода FERR# является немаскированное числовое исключение.) В этом случае внешнее прерывание вызывает процедуру обработки исключения. Если NE = 0, но активен ввод IGNNE#, процессор не обращает внимания на исключение и продолжает работу. Ошибка, проходящая через внешнее прерывание, поддерживается только для совместимости с DOS. В Главе 25 приведено дальнейшее обсуждение подобной совместимости.
Процедура обработки исключений является обычно частью программного обеспечения систем. Типичные ответы на исключения включают:
Увеличение на единицу счетчика исключений для дальнейшего вывода на экран или принтер.
Печать или вывод на экран диагностической информации (то есть текущее состояние модуля обработки операций с плавающей точкой и регистров).
Прекращение дальнейшего выполнения или использование указателей исключений для того, чтобы сделать команду, которая будет работать без генерации исключений, и ее выполнение.
Прикладным программистам следует обратиться к справочному руководству по операционной системе для получения информации о соответствующих ответах системы на числовые исключения. Для системных программистов в Главе 19 приводятся некоторые детали написания программных обработчиков исключений.