Глава 1. Системные ресурсы.

Раздел 2. Управление прерываниями.

1.2.1 Программирование контроллера прерываний 8259.

Для управления аппаратными прерываниями во всех типах IBM PC используется микросхема программируемого контроллера прерываний Intel 8259. Поскольку в ккаждый момент времени может поступить не один запрос, микросхема имеет схему приоритетов. Имеется 8 уровней приоритетов, кроме AT, у которого их 16, и обращения к соответствующим уровням обозначаются сокращениями от IRQ0 до IRQ7 (от IRQ0 до IRQ15), что означает запрос на прерывание. Максимальный приоритет соответствует уровню 0. Добавочные 8 уровней для AT обрабатываются второй микросхемой 8259; этот второй набор уровней имеет приоритет между IRQ2 и IRQ3. Запросы на прерывание 0-7 соответствуют векторам прерываний от 8H до 0FH; для AT запросы на прерывания 8-15 обслуживаются векторами от 70H до 77H. Hиже приведены назначения этих прерываний:

 Аппаратные прерывания в порядке приоритета. 
   IRQ 0     таймер 
       1     клавиатура 
       2     канал ввода/вывода 
          8  часы реального времени (только AT) 
          9  программно переводятся в IRQ2 (только AT) 
         10  резерв 
         11  резерв 
         12  резерв 
         13  мат. сопроцессор (только AT) 
         14  контроллер фиксированного диска (только AT) 
         15  резерв 
       3     COM1 (COM2 для AT) 
       4     COM2 (модем для PCjr, COM1 для AT) 
       5     фиксированный диск (LPT2 для AT) 
       6     контроллер дискет 
       7     LPT1 

Прерыванию времени суток {2.1.0} дан максимальный приоритет, поскольку если оно будет постоянно теряться, то будут неверными показания системных часов. Прерывание от клавиатуры {3.1.0} вызывается при нажатии или отпускании клавиши; оно вызывает цепь событий, которая обычно заканчивается тем, что код клавиши помещается в буфер клавиатуры (откуда он затем может быть получен программными прерываниями).

Микросхема 8259 имеет три однобайтных регистра, которые управляют восемью линиями аппаратных прерываний. Регистр запроса на прерывание (IRR) устанавливает соответствующий бит, когда линия прерывания сигнализирует о запросе. Затем микросхема автоматически проверяет не обрабатывается ли другое прерывание. При этом она запрашивает информацию регистра обслуживания (ISR). Дополнительная цепь отвечает за схему приоритетов. Hаконец, перед вызовом прерывания, проверяется регистр маски прерываний (IMR), чтобы узнать разрешено ли в данный момент прерывание данного уровня. Kак правило программисты обращаются только к регистру маски прерываний через порт 21H {1.2.2} и командному регистру прерываний через порт 20H {1.2.3}.


<~-Раздел 2. Управление прерываниями.
Содержание
1.2.2 Запрет/разрешение отдельных аппаратных прерываний.-~>

Сайт управляется системой uCoz