своеобразное сито — логику маскирования и приоритета — попадает на
вход INT МП (INT=1).
2-ой этап. МП первым сигналом чтения -INTA считывает из ПКП
на шину данных КОП = CD и одновременно переписывает
соответствующий запрос из РЗП в регистр обслуживаемых запросов на
прерывание (РОЗП). Соответствующий выход РОЗП, установившись в
«1», блокирует прохождение INT через логику маскирования и
приоритетов как собственного запроса, так и более низких по приоритету.
Резюме: 1-ые ворота закрылись, INT — исчез (INT=0).
3-ий этап. МП, распознав по КОПу, что команда двухбайтовая,
вырабатывает еще один сигнал чтения -INTA, который считывает из ПКП
на шину данных вектор и одновременно сбрасывает соответствующий
разряд РЗП в «0», который вызвал прерывание INT. Итак, первая
ступень — в исходное состояние. Можно зафиксировать: аппаратная
часть прерывания закончилась, но в результате:
1) флаг IF = 0 , то есть аппаратное прерывание МП заблокировано
(запрещено);
2) IRQ
i
, вызвавший прерывание, тоже заблокирован по входу i и по
всем остальным, которые ниже по приоритету.
4-ый этап. Разблокировка этой двойной блокировки всегда
производится программно в конце подпрограммы, вызванной
прерыванием.
Снятие блокировки со входа INT МП производится командой STI
(IF = 1 — разрешение аппаратного прерывания).
Сброс соответствующего разряда РОЗП осуществляется записью в
ПКП при А0=0 (рисунок 10), например, кода «20» (20 — код команды
сброса того разряда, который последним вызвал прерывание).
2-ые ворота шлюза открылись — процесс прерывания завершен.
Пример 2 — Допустим, ПКП выбирается (с помощью дешифратора
адреса) следующими кодами :
OFO (AO=0) и OF1 (AO=1);
Тогда заключительная часть подпрограммы, вызванной прерыванием, будет
выглядеть следующим образом:
. . . . . . . . . . . . . . . . . . . . . . . . .
STI ; разрешение прерываний микропроцессору;
MOV DX,OOFO ; адрес ПКП для А0=0 в DX;
MOV AL,20 ; код завершения обработки прерывания ПКП —
в AL,
OUT DX,AL ; а оттуда в ПКП.
IRET ; возврат в программу.
На рисунке 10 (архитектура ПКП) имеется элемент, именуемый
регистром маски. Маска устанавливается («1»—маскирование IRQ
i
)
72