Обзор информации об ошибках, доступных для каждого исключения, приводится в Таблице 9-8.
Таблица 9-7. Обзор исключений -----------------------------------------------------------------Описание Номер Адрес возврата Тип Источник вектора указывает на исключения исключения сбойную команду?-----------------------------------------------------------------Деление на ноль 0 Да Сбой Команды DIV и IDIV Отладочные 1 *1 *1 Любая ссылкаисключения к коду или данным Контрольная точка 3 Нет Ловушка Команда INT 3 Переполнение 4 Нет Ловушка Команда INTO Проверка диапазона 5 Да Сбой Команда BOUND Неверный код 6 Да Сбой Резервированныеоперации коды операции Устройство 7 Да Сбой Команды ESCнедоступно и WAIT Двойной сбой 8 Да Аварийное Любая команда завершение 2Неверный TSS 10 Да Сбой Команды JMP, CALL, RET, прерывания и особые ситуации Сегмент не 11 Да Сбой Любая команда,присутствует изменяющая сегмент Сбой в стеке 12 Да Сбой Стековые операции Общая защита 13 Да Сбой/ 3 Любая ссылка Ловушка к коду или данным Страничный сбой 14 Да Сбой Любая ссылка к коду или данным 4Ошибка операции 16 Да Сбой Команды ESCс плавающей и WAITточкой Проверка 17 Да Сбой Любая ссылкавыравнивания к данным Программное от 0 Нет Ловушка Команды INT nпрерывание до 255-----------------------------------------------------------------
Отладочные исключения это либо ловушки, либо сбои. Обработчик исключений может делать различие между ловушками и сбоями, исследовав содержимое регистра DR6.
Исключение "неверный TSS" недопускает рестарт, если она произошла во время обработки прерывания или исключения.
Сбои общей защиты позволяют рестарт. Если сбой произошел при попытке вызова обработчика, то прерванная программа позволяет рестарт, но прерывание может быть потеряно.
Сообщения об ошибках операций с плавающей точкой не выдаютс до первой команды ESC или команды WAIT, следующей за командой ESC, сгенерировавшей ошибку.
Обзор кодов ошибки Таблица 9-8 -----------------------------------------------------------------Описание Номер Генерируется ли вектора код ошибки ?-----------------------------------------------------------------Ошибка деления 0 НетОтладочные исключения 1 НетКонтрольная точка 3 НетПереполнение 4 НетПроверка диапазона 5 НетНеверный код операции 6 НетУстройство недоступно 7 НетДвойной сбой 8 Да (всегда ноль)Неверный TSS 10 ДаСегмент не присутствует 11 ДаСбой сегмента 12 ДаОбщая защита 13 ДаСтраничный сбой 14 ДаОшибка операции с плавающей точкой 16 НетПроверка выравнивания 17 Да (всегда ноль)Программное прерывание 0-255 Нет-----------------------------------------------------------------