Процессор ассоциирует с каждым отдельным типом прерывания или исключением идентифицирующий его номер, называемый вектором. Немаскируемым (NMI) прерываниям и исключениям присвоены векторы в диапазоне от 0 до 31. Не все из этих векторов используются процессором в настоящее время; неназначенные векторы из этого диапазона резервируются для возможного использования в будущем. Использовать неназначенные векторы не следует. Векторы маскируемых прерываний определяются аппаратно. Контроллеры внешних прерываний (например, Intel 8259, программируемый Контроллер Прерываний) передают вектор на шину процессора i486 во время цикла квитирования прерывания. Использоваться могут любые векторы в диапазоне значений от 32 до 255. Назначения векторов исключений и прерываний показаны в Таблице 1-9.
Таблица 9-1. Векторы исключений и прерываний----------------------------------------------------------------- Номер вектора Описание----------------------------------------------------------------- 0 Ошибка деления 1 Отладочное исключение 2 Немаскируемое (NMI) прерывание 3 Точка останова (контрольная точка) 4 Переполнение, обнаруженное командой INTO 5 Превышение диапазона команды BOUND 6 Неверный код операции 7 Устройство не доступно 8 Двойной сбой 9 (Резервировано Intel. Не используйте. ЦПУ i486 не используется) 10 Неверный сегмент состояния задачи 11 Сегмент не присутствует 12 Сбой в стеке 13 Общая защита 14 Сбой в странице 15 (Резервировано Intel. Не используйте) 16 Ошибка операции с плавающей точкой 17 Проверка выравнивания 18-31 (Резервировано Intel. Не используйте) 32-255 Маскируемые прерывания-----------------------------------------------------------------
Исключения классифицируются как сбои (отказы), ловушки и аварийные завершения, в зависимости о том, как выдается сообщение о том, что они произошли, и от того, поддерживается ли возможность рестарта вызвавшей их команды. Сбои (отказ) - Сбой это исключение, сообщение о которой выдается на границе команды, предшествующей команде, вызвавшей это исключение. После сообщения о сбое машина восстанавливается в ситуацию, позволяющую выполнить рестарт команды. Адрес возврата для обработчика сбоя указывает на команду, сгенерировавшую данный сбой, а не на команду, следующую за ней. Ловушки - Ловушка это исключение, сообщение о которой выдается на границе команды, непосредственно расположенной после команды, для которой было обнаружено данное исключение. Аварийные завершения - Аварийное завершение это исключение, не всегда сообщающая адрес команды, вызвавшей данное исключение, и не всегда позволяющая рестарт программы, вызвавшей данное исключение. Аварийные завершения используются для сообщения о тяжелых ошибках, например аппаратных ошибках, или противоречивых или недопустимых значениях в системных таблицах.