Interested Article - Таблица векторов прерываний

Таблица векторов прерываний ( англ. Interrupt Descriptor Table, IDT ) используется в архитектуре x86 и ряде других архитектур и служит для определения корректного ответа на прерывания и исключения .

В микропроцессорах Intel 8086 / 80186 таблица векторов прерываний расположена в первом килобайте памяти начиная с адреса 0000:0000 и содержит 256 векторов прерываний в формате сегмент:смещение. Начиная с процессора 80286 , адрес в физической памяти и размер таблицы прерываний определяется 48- битным регистром IDTR.

В IDT используются следующие типы прерываний: аппаратные прерывания, программные прерывания и прерывания, зарезервированные процессором, называемые исключениями (первые 32) на случай возникновения некоторых событий ( деление на ноль , ошибка трассировки, переполнение).

В реальном режиме элементом IDT является 32- битный FAR-адрес обработчика прерывания .

В защищённом режиме элементом IDT является шлюз прерывания длиной 8 байт , содержащий сегментный (логический) адрес обработчика прерывания, права доступа и др.

В длинном режиме размер дескриптора прерывания увеличен до 16 байт.

В режиме V86 при использовании расширения VME таблица векторов располагается по виртуальному адресу 0000:0000. Без использования этого расширения (и в том случае, если переадресация прерываний запрещена) при возникновении прерывания процессор покидает режим V86 и выполняет обычный обработчик защищённого режима.

Инициализация IDT

Первый этап инициализации выполняется BIOS , перед загрузкой ОС . Второй непосредственно самой операционной системой. Операционной системе доступно изменение некоторых адресов прерываний.

См. также

Ссылки

Источник —

Same as Таблица векторов прерываний