logo search
АВМиС - бывшее АПЭВМ / apvem / всякаявсячина

35.Таблица дескрипторов idt

В защищенном режиме МП 80286 и МП 80386 используется еще и третья дескрипторная таблица – таблица дескрипторов прерываний - IDT (рис), рассчитанная для хранения 256 дескрипторов. Она может состоять только из дескрипторов шлюза задачи, шлюза прерываний и шлюза ловушек. Таблица дескрипторов прерываний имеет в CPU 24-разрядный (МП 80286) или 32-разрядный (МП 80386) регистр физической базы и 16-разрядный регистр предела (длины) таблицы - IDTR. Привилегированная команда LIDT загружает регистр IDTR шестибайтовым значением так, как показано на рис (идентично команде LGDT).

Обращение к элементам IDT происходит через команды INT, векторы внешних прерываний или исключительных ситуаций. Для резервирования входов в обработчики всех прерываний IDT должна иметь размер 256*8 байт.

CPU Память, таблица

┌───────────────────────┐ дескрипторов прерываний (IDT)

│ │ ┌─├──────────────┤

15 IDTR 0 │ │ │ Шлюз для │

│ ┌─────────────┐│ │ │прерывания n │

│ │ ├──>│ ├──────────────┤

│ │ Предел IDT ││ │ │ Шлюз для │

│┌───────┴─────────────┤│ │ │прерывания n-1│

││База IDT. 24-разряд- ││ │ ├──────────────┤

││ный или 32-разрядный ││ │ │ │

││физический адрес ├──┐│ │ . . . │

│└─────────────────────┘│ ││ │ │

23(31) 0 │ ││ ├──────────────┤/\

│ │ ││ │ Шлюз для │││ Направление

│ │ ││ │прерывания 1 │││ увеличения

│ │ ││ ├──────────────┤││ адресов

│ │ ││ │ Шлюз для │││ памяти

└───────────────────────┘ ││ │прерывания 0 │││

└┴>├──────────────┤

Рис. 3.32. Определение таблицы дескрипторов прерываний

Команда LIDT может использоваться для загрузки базы таблицы векторов прерываний и в реальном режиме работы. После включения питания машины база таблицы IDT принимает нулевое значение и длину 3FFh.