В процессоре i486 сообщения некоторых исключений различаются в зависимости от того, возникают ли исключения в защищенном режиме или режиме реальных адресов. Таблица 22-1 уточняет исключения для режима реальных адресов.
Таблица 22-1. Исключения и прерывания+-------------------------------------------------------------------------+| Описание | Вектор | Источник | Указывает-ли адрес || | | исключений | возврата на команду,|| | | | которая вызвала || | | | исключение |+------------------+--------+-----------------------+---------------------||Деление на ноль | 0 | Команды DIV и IDIV | да ||Отладка | 1 | Любой | *(1) ||Точка останова | 3 | Команда INT | нет ||Переполнение | 4 | Команда INTО | нет ||Превышение грани- | 5 | Команда BOUND | да ||цы индекса массива| | | ||Неразрещенный | 6 | зарезервированные | да ||код операции | | коды операции и непра-| || | | вильное использование | || | | префикса LOCK | ||Устройство отсут- | 7 | Команды ESC или WAIT | да ||ствует | | | ||Двойной отказ | 8 | Любой | да ||Зарезервириван | 9 | | ||Неразрешенный | 10 | Команды JMP,CALL,IRET,| да ||сегмент состояния | | прерывания и исклю- | ||задачи | | чения | ||Сегмент отсутст- | 11 | Любая команда, которая| да ||вует | | изменяет сегменты | ||Исключение по | 12 | Выход операции со | да ||стеку | | стеком за границу | || | | адресов | ||Защита | 13 | Операнд или команда | да || | | выходят за границу ад-| || | | ресов или команда | || | | превышает 15 байт | ||Сбой страницы | 14 | Любая команда, которая| да || | | обращается к памяти | ||Зарезервирован | 15 | | ||Ошибка вычислений | 16 | Команды ESC или WAIT | да(2) ||с плавающей точкой| | | ||Программные преры-| 0-255 | Команды INT n | нет ||вания | | | |+-------------------------------------------------------------------------+ (1) - Некоторые исключения отладки указывают на команду, содержащуюошибку, другие на следующую за ней команду. Обработчик исключений можеттестировать регистр DR6 определяя, что произошло. (2) - Ошибки вычисленийс плавающей точкой выдают сообщения на первую команду ESC или WAIT,стоящую после команды ESC, которая сгенерировала ошибку.