Прерывания по сигналам прерывания по входу INTR
Запросы на маскируемые сигналы прерываний поступают от отдельных периферийных устройств по индивидуальным проводам запроса. В контроллере прерываний они фиксируются на регистре прерываний, связанном со схемой приоритетного выбора сигнала прерывания. При этом в контроллере прерываний (8259А) формируется выходной сигнал прерывания, поступающий на вход приема маскируемых сигналов прерывания (INTR) и тип (n), где n– номер программы обработки прерывания.
Прерывания по сигналам прерывания по входу INTR
Запросы на маскируемые сигналы прерываний поступают от отдельных периферийных устройств по индивидуальным проводам запроса. В контроллере прерываний они фиксируются на регистре прерываний, связанном со схемой приоритетного выбора сигнала прерывания. При этом в контроллере прерываний (8259А) формируется выходной сигнал прерывания, поступающий на вход приема маскируемых сигналов прерывания (INTR) и тип (n), где n– номер программы обработки прерывания.
По завершении очередной команды производится проверка исключений, в частности, сигнала на входе NMI процессора. Сигнал определяется по переднему фронту. При отсутствии сигнала на входе NMI процессор проверяет значение бита разрешения прерывания в регистре флагов. При IF=0 процессор производит выборку очередной команды текущей программы.
При единичном значении IF процессор реализует процедуру прерывания. Для этого процессор выставляет на шины системного интерфейса в двух смежных тактах сигналы подтверждения прерывания (inta).
В ответ на сигнал intaво втором такте подтверждения прерыванияконтроллер прерывания выставляет на шины данных тип (n) программы обработки прерывания.
Тип (n) программы обработки прерывания используется в качестве номера строки таблицы прерываний. Таблица прерываний содержит векторы прерываний: IP (адрес входа в программу) и CS(базовый адрес сегмента программы).
В МП Intel, как и во многих ЭВМ, количество программ обработки прерываний ограничено числом 256. В соответствии с этим таблица прерываний содержит не более 256 векторов прерываний по 4 байта. Для МПIA-16таблица прерываний всегда занимает первый килобайт линейной (оперативной) памяти.
Для сохранения настройки и перехода на программу обработки прерывания процессор производит следующие действия:
· последовательно сохраняет в стеке содержимое CS, IP и регистра флагов (F),
· в регистре флагов сбрасываются флаги разрешения прерываний IF и пошаговой ловушки TF (запрещение прерывания и пошагового режима),
· делает обращение к таблице прерываний и производит последовательное заполнение регистров процессора IP и CSданными из таблицы прерывания по адресу 4n, где n– тип прерывания.
Сохранение содержимого РОН производится программой обработки прерывания.
После сохранения РОН программа обработки прерывания может сбросить флаг разрешения прерывания IF. Сброс флага IF открывает возможность прерывания программы обработки прерывания запросами прерывания с более высоким приоритетом, например, сигналом прерывания по входу NMI.
Программа обработки прерывания заканчивается командами восстановления данных в РОНах и командой IRET. По команде IRET производится восстановление регистров F, IP и CSзначениями, сохраненными в стеке.
Таблица 7. Основные параметры различных видов прерываний | |||
Вид прерывания | Тип | Приор. | Примечание. |
По ошибке деления | |||
По команде INT n | 5 – 31 | ||
По команде INTO | Команда прерывания при переполнении | ||
По команде INT 3 | Однобайтовая команда контрольной точки | ||
По входу NMI | |||
По входу INTR | 32 – 255 | ||
По флагу TF | Пошаговый режим |
Дата добавления: 2015-08-14; просмотров: 726;