килобайте памяти. IBM PC отображает
килобайте памяти. IBM PC отображает восемь уровней прерывания
контроллера 8259 на вектора прерываний от 8 до 0FH включительно.
Так, если поступает прерывание от клавиатуры (уровень 1),
начинается выполнение программы по адресу CS:IP, определенному
двойным словом в векторе прерываний 9, лежащему по адресам от 24H
до 27H.
Давайте посмотрим, как все это вместе происходит в IBM PC.
Сначала процедура самопроверки при включении питания (POST)
инициализирует контроллер 8259 с соответствующей управляющей и
упорядочивающей информацией. В это же время процедура POST снимает
маску прерываний от таймера, клавиатуры, а также прерываний от
дискет в регистре маски прерываний микросхемы 8259. После
завершения процедуры POST включается система прерываний по команде
STI. Теперь система готова к приему прерываний.
Вы нажимаете клавишу на клавиатуре. Клавиатура посылает символ
в системную плату, где он записывается в регистр и возбуждает
прерывание уровня 1. Далее начинает работу микросхема 8259. Она
устанавливает бит 1 в регистре IRR, отмечая запрос на прерывание.
Если не установлены ни нулевой, ни первый биты регистра ISR,
показывающие обслуживание прерывания с более высоким приоритетом,
контроллер возбуждает вход прерывания микропроцессора 8088. Когда
микропроцессор окажется готов к приему прерывания, он выполнит цикл
подтверждения прерывания. Микропроцессор 8088 поместит в стек
текущее содержимое регистра флагов, CS и IP. Контроллер 8259
отвечает на цикл подтверждения прерывания номером прерывания, в
данном случае это 9; затем контроллер установит равным единице бит
1 в регистре ISR, показывая, что прерывание 1 обслуживается. Тем
временем микропроцессор 8088 загружает пару регистров CS:IP из
ячеек 24H- 27H и начинает работу с указанного в них адреса.
Затем микропроцессор выполняет программу обработки прерываний
от клавиатуры. На Фиг. 8.4 показана схема обработчика прерывания от
Содержание Назад Вперед