Cтраница 2
Загрузка вектора прерывания входит в обязанности системного программиста. Если вектор не загружен, возможна неопределенная последовательность действий процессора. [16]
Адрес вектора прерывания, выдаваемый при этом тестером на ОШ, предварительно заносится в нулевой регистр запоминающего устройства тестера. [17]
Адрес вектора прерывания коммутируется с помощью перемычек. [18]
![]() |
Схема обработки L-запросов в контроллере ( ТПР - сигнал требования прерывания. [19] |
Адрес вектора прерывания формируется схемой, на вход которой поступает номер i группы, которой предоставлено прерывание. [20]
![]() |
Вектора прерываний и ПДП EFCOP. [21] |
Таблица векторов прерываний EFCOP показана ниже. [22]
Каждый такой вектор прерываний вызывает выполнение соответствующей процедуры прерываний. Следует отметить, что по-казанные на рис. 6.24 операции ЗАПОМНИТЬ СОСТОЯНИЕ СИСТЕМЫ, ВЫЗОВ: РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ (), ВОССТАНОВИТЬ СОСТОЯНИЕ СИСТЕМЫ и ВОЗВРАТ должны повторяться в каждой процедуре ОБРАБОТКИ. Это необходимо потому, что операции проверки и вызова являются теперь аппаратными операциями и могут выполняться в различной последовательности, как показано на примере модифицированной процедуры ИСПОЛНЕНИЯ ПРЕРЫВАНИИ на рис. 6.26. На рис. 6.27 показана процедура ОБРАБОТКИ ПРЕРЫВАНИИ ТАЙМЕРА, иллюстрирующая формат такой процедуры. Этот рисунок следует сравнить с рис. 4.30. На рис. 6.28 показаны команды ассемблера, необходимые для реализации части этой процедуры вместе с соответствующими командами перехода в ячейках памяти 0 - 63 для некоторых векторов прерываний. Техника прерываний, автоматически вызывающая выполнение процедур прерываний с использованием заранее определенных адресов памяти и векторов прерываний, известна под названием векторных прерываний. [23]
За таблицей векторов прерываний следует область, используемая для хранения ряда программ и данных MS DOS. Далее располагаются программы-обработчики прерываний. Самая большая область оперативной памяти, как правило, отведена для выполнения программы пользователя. Эта область, обычно, распадается на сегменты кода, данных стека и дополнительный, адресуемые соответствующими сегментными регистрами. [24]
Если вычисление вектора прерывания не делается в контроллере прерываний, то выяснение причины прерывания осуществляется программно путем анализа разрядов кода запроса или готовности устройств, подключенных к интерфейсу. Программный анализ значительно замедляет реакцию процессора на прерывание, но экономится оборудование и память. При программном анализе нет необходимости в новом ССП и при прерываниях управление может передаваться на одну и ту же ( фиксированную) ячейку памяти. [25]
В простейшем случае вектор прерывания состоит лишь из начального адреса прерывающей программы. [26]
Центральный процессор удаляет вектор прерывания с шины и временно его сохраняет. [27]
Процедура SwapVectors восстанавливает векторы прерываний, которые сохранены в переменных SavelntNN, записывая одновременно в эти же переменные предыдущие векторы. [28]
Система BIOS делает вектор прерывания типа 1C указателем на команду IRET, поэтому Вам придется изменить этот вектор, если Вы хотите, чтобы прерывание вызывало какую-либо полезную деятельность. [29]
Шифратор приоритета формирует двоично-кодированный вектор прерывания, указывающий незамаскированный запрос прерывания с высшим приоритетом. Одновременно вектор прерывания записывается в регистр вектора и используется затем для очистки РП. [30]