Основы микропроцессорной техники. Ливенцов С.Н - 111 стр.

UptoLike

111
второму импульсу контроллер прерываний выставляет на шину данных
восьмибитный номер вектора прерывания, соответствующий данной
линии IRQ.
В режиме реального адреса ("реальном" режиме) векторы преры-
ваний хранятся в таблице векторов прерываний, которая находится в
первом килобайте оперативной памяти. Под каждый вектор отведено
4 байта (2 байта под адрес сегмента и 2 байта под смещение), т. е. в
таблице может содержаться 256 векторов. Адрес вектора в таблице
номер вектора * 4.
Далее процессор считывает номер вектора прерывания. Сохраняет
в стеке содержимое регистра флагов, сбрасывает флаг прерываний IF и
помещает в стек адрес возврата в прерванную программу (регистры CS
и IP). После этого процессор извлекает из таблицы векторов прерыва-
ний адрес подпрограммы обработки прерываний для данного устрой-
ства и приступает к ее выполнению.
Процедура обработки аппаратного прерывания должна завершать-
ся командой конца прерывания EOI (End of Interruption), посылаемой
контроллеру прерываний. Для этого необходимо записать байт 20h в
порт 20h (для первого контроллера) и в порт A0h (для второго).
В IBM PC/XT/AT используется режим прерываний с фиксирован-
ными приоритетами. Высшим приоритетом обладает запрос по линии
Рис. 43. Упрощенная схема взаимодействия
контроллера прерываний с процессором и
контроллером шины в IBM-совместимых ПК