Пусть поступил сигнал от клавиатуры

1) сначала он поступит на вход IRR (регистра входных запросов) и устанавливает бит 1

2) сигнал проходит через регистр маски (этот регистр программируется через порт 21h) Если бит 1 маски установлен, то прерывания от клавиатуры запрещены. Пусть бит 1 сброшен.

3) Сигнал проходит через схему анализа приоритетов. Если эта схема видит, что поступил запрос более низкого или того же уровня, чем обрабатываемый, он игнорирует его (если обрабатывается прерывание от таймера, то запрос от клавиатуры игнорируется).

4) Сигнал поступает на вход регистра обслуживаемых запросов IRR и дает разрешение на установку бита 1, одновременно он поступает на вход INT.

5) Если IF = 1, то ЦП откликается на прерывание и дает сигнал .

6) устанавливает бит 1 в ISR и сбрасывает бит 1 в IRR. Одновременно IF←0 – все внешние прерывания запрещаются.

7) Так как бит 1 в ISR установлен, то блокируются все прерывания с равным и низшим приоритетом.

8) Содержимое ICW2 выставляется на шину данных – это номер прерывания.

9) Выполняется программа обработки прерывания.

10) В конце программы обработки прерывания выполняется команда EOI, которая очищает ISR, происходит снятие блокировки битов в схеме анализа приоритетов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: