Добавить в корзинуПозвонить
Найти в Дзене

Замаскированные прерывания раюоты ПК.

Замаскированные прерывания включены или отключены программмой: С командой STI прерывания включены, и флаг IF установлен на 1. С помощью команды CLI блокируются все возможные прерывания этого типа и флаг IF устанавливается на 0. ЦПУ принимается в состояние международного респонта, расположенного в интегральном терминале (программное интерруппе). Они запрашиваются внешними периферийными устройствами через программируемый контроллер прерываний (ПИК), подключенный к клемме INT процессора, прием или отсутствие запроса зависит от состояния флага прерываний ПЧ. Оригинальный IBM PC использовал контроллер прерываний 8259. Это позволило сгенерировать до 8 прерываний (от 0 до 7). Эти линии прерывания называются линиями запроса прерывания или IRQ. Из IBM AT входят 2 контроллера прерываний, где второй контроллер (SLAVE) каскадирован до линии прерывания 2 первого контроллера (MASTER). Линии прерывания второго контроллера пронумерованы от 0 до 8. Из-за этого каскада, линия размыкания 2 недоступна. О
Оглавление
https://unsplash.com/photos/n0mabeJj6_s
https://unsplash.com/photos/n0mabeJj6_s

Замаскированные прерывания включены или отключены программмой:

С командой STI прерывания включены, и флаг IF установлен на 1.

С помощью команды CLI блокируются все возможные прерывания этого типа и флаг IF устанавливается на 0.

ЦПУ принимается в состояние международного респонта, расположенного в интегральном терминале (программное интерруппе).

Они запрашиваются внешними периферийными устройствами через программируемый контроллер прерываний (ПИК), подключенный к клемме INT процессора, прием или отсутствие запроса зависит от состояния флага прерываний ПЧ.

Оригинальный IBM PC использовал контроллер прерываний 8259. Это позволило сгенерировать до 8 прерываний (от 0 до 7).

Эти линии прерывания называются линиями запроса прерывания или IRQ.

Из IBM AT входят 2 контроллера прерываний, где второй контроллер (SLAVE) каскадирован до линии прерывания 2 первого контроллера (MASTER). Линии прерывания второго контроллера пронумерованы от 0 до 8.

Из-за этого каскада, линия размыкания 2 недоступна.

Однако, для совместимости с оригинальным ПК, линия прерывания 2 подключается к линии 9 второго контроллера (такая, что если устройство на ПК является устройством gurado для прерывания 2, оно фактически использует прерывание 9).

Зарезервированные перерывы:

1. IRQ0 Таймер.

2. IRQ1 Клавиатура.

3. IRQ8 Часы реального времени.

4. IRQ13 Ошибки копроцессора.

5. IRQ14 Контроллер жесткого диска.

6. IRQ3 Последовательный порт COM1.

7. IRQ4 Последовательный порт COM2.

8. IRQ6 Контроллер гибких дискет.

9. IRQ7 Параллельный порт.

В начале работы системы, которую вы укажете:

1. МАСТЕР-ПИКЕР INT = IRQ + 8

2. ПИК СЛАВ ВНИМАНИЕ = IRQ + 70ч

3. PIC MASTER Dir I/O = 20h, 21h

4. PIC SLAVE Dir I/O = A0h, A1h

Обработка прерываний: СУММАРНЫ

Когда микропроцессор 8088/8086 обрабатывает прерывание (программное или аппаратное), он выполняет следующие шаги:

1. Сохраняет регистр флага PSW в стеке.

2. Наносит значения на флаги IF=0, TF=0.

3. Сохраняет в текущем CS стеке.

4. Сохраняет в текущий IP-стек.

Тип прерывания (n=0,1,2, 255) умножается на 4, чтобы получить физический адрес векторной таблицы и найти соответствие CS, IP подпрограммы обслуживания.

С помощью этого CS, IP адреса CPU ищет и выполняет команды служебной подпрограммы.

Последней командой служебной подпрограммы должен быть IRET, который восстанавливает IP, CS и PSW, чтобы процессор восстанавливал выполнение основной программы.

Удаление вектора прерывания.

Функция 35H INT 21H считывает вектор прерывания из векторной таблицы.

Вход:

· AH : 35H

· AL : номер вектора прерывания

Выход:

· ES : BX = адрес, сохраненный в векторе

· BX : IP подпрограммы обслуживания Int.

· ЭП : CS служебной подпрограммы Int.

· 5.7.2 Установка вектора прерываний

Функция 25H INT 21H устанавливает вектор прерывания в векторную таблицу.

Входной сигнал:

· AH = 25H = 25H

· AL = номер вектора прерывания

· DS = адрес подпрограммы обслуживания DX

· DS = Сервисная подпрограмма CS

· DX = IP-адрес служебной подпрограммы

 https://unsplash.com/photos/yAu40E-ZyZI
https://unsplash.com/photos/yAu40E-ZyZI