Область векторов прерываний охватывает адреса от 0 до 3FFh в шестнадцатеричном исчислении. Каждый 4-х байтный участок этой области содержит адрес первой команды подпрограммы обработки прерываний (вектор прерываний), которая должна вызываться при возникновении прерывания конкретного типа (рис.3.3).
Объем памяти векторов прерываний 256*4=1024 байт.
При возникновении прерываний ОС выполняет следующую последовательность операций:
1. Запоминает адрес текущей команды из регистров CS:IP в стеке вместе с регистром флагов (состояний), представленным на рис.3.4.
2. Загружает в CS:IP адрес обработчика прерываний.
3. Обработчик прерываний завершается командой IRET (возврат управления), которая восстанавливает из стека содержимое СS:IP и регистр флагов состояния, структура которого приведена на рисунке 3.4.
Рис. 3.3. Таблица вектора прерываний
|