Добавил:
Mymnan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АВМиС - бывшее АПЭВМ / Shpora / 16
.txt Рассмотрим команды операций. Существуют три типа команд операций:
* Маскирование запросов прерывания.
* Команды обработки конца прерывания.
* Опрос регистров и специальное маскирование.
Байты команды маскирования запросов прерывания выводятся соответственно в порты 21h и A1h для первого и второго контроллера 8259 компьютера AT. Команды операций второго и третьего типа используют порты с адресами 20h и A0h.
Команды обработки конца прерывания приведем в виде таблицы:
Биты байта команды Описание
D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 0 0 0 0 0 Обычный конец прерывания.
0 1 1 0 0 B2 B1 B0 Специальный конец прерывания,
B0...B2 - двоично-десятичный код
сбрасываемого разряда в регистре
обслуживания прерывания ISR.
1 0 1 0 0 X X X Циклический сдвиг уровней приоритета с
обычным концом прерывания.
Дно приоритетного кольца
устанавливается по обслуженному запросу.
1 1 1 0 0 B2 B1 B0 Циклический сдвиг уровней приоритета
со специальным концом прерывания,
B0...B2 - двоично-десятичный код дна
приоритетного кольца.
1 0 0 0 0 X X X Разрешение вращения уровней приоритета.
0 0 0 0 0 X X X Сброс разрешения вращения уровней
приоритета.
1 1 0 0 0 B2 B1 B0 Циклический сдвиг уровней приоритета
без завершения прерывания,
B0...B2 - двоично-десятичный код дна
приоритетного кольца
После выполнения команд разрешения чтения регистров ISR или IRR при выполнении команды ввода из порта 20h и A0h считывается соответственно содержимое регистров ISR и IRR. Для получения содержимого регистра IMR необходимо выполнить чтение портов с адресами соответственно 21h и A1h.
Команда разрешения триггера специального маскирования блокирует действие тех разрядов ISR, которые замаскированы командой типа 1 (маскирования индивидуальных приоритетных уровней запроса прерывания). Специальное маскирование используется для обслуживания такого запроса, который блокируется старшим или равным по уровню приоритета обслуженным запросом, хранящимся в ISR, не сбрасывая последний.
Чтение регистров ISR и IRR может использоваться резидентными программами при проверке возможности своей активизации - можно проверить, не выполняется ли в настоящий момент обработка какого-нибудь прерывания, которая может конфликтовать с действиями резидентной программы.
* Маскирование запросов прерывания.
* Команды обработки конца прерывания.
* Опрос регистров и специальное маскирование.
Байты команды маскирования запросов прерывания выводятся соответственно в порты 21h и A1h для первого и второго контроллера 8259 компьютера AT. Команды операций второго и третьего типа используют порты с адресами 20h и A0h.
Команды обработки конца прерывания приведем в виде таблицы:
Биты байта команды Описание
D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 0 0 0 0 0 Обычный конец прерывания.
0 1 1 0 0 B2 B1 B0 Специальный конец прерывания,
B0...B2 - двоично-десятичный код
сбрасываемого разряда в регистре
обслуживания прерывания ISR.
1 0 1 0 0 X X X Циклический сдвиг уровней приоритета с
обычным концом прерывания.
Дно приоритетного кольца
устанавливается по обслуженному запросу.
1 1 1 0 0 B2 B1 B0 Циклический сдвиг уровней приоритета
со специальным концом прерывания,
B0...B2 - двоично-десятичный код дна
приоритетного кольца.
1 0 0 0 0 X X X Разрешение вращения уровней приоритета.
0 0 0 0 0 X X X Сброс разрешения вращения уровней
приоритета.
1 1 0 0 0 B2 B1 B0 Циклический сдвиг уровней приоритета
без завершения прерывания,
B0...B2 - двоично-десятичный код дна
приоритетного кольца
После выполнения команд разрешения чтения регистров ISR или IRR при выполнении команды ввода из порта 20h и A0h считывается соответственно содержимое регистров ISR и IRR. Для получения содержимого регистра IMR необходимо выполнить чтение портов с адресами соответственно 21h и A1h.
Команда разрешения триггера специального маскирования блокирует действие тех разрядов ISR, которые замаскированы командой типа 1 (маскирования индивидуальных приоритетных уровней запроса прерывания). Специальное маскирование используется для обслуживания такого запроса, который блокируется старшим или равным по уровню приоритета обслуженным запросом, хранящимся в ISR, не сбрасывая последний.
Чтение регистров ISR и IRR может использоваться резидентными программами при проверке возможности своей активизации - можно проверить, не выполняется ли в настоящий момент обработка какого-нибудь прерывания, которая может конфликтовать с действиями резидентной программы.