Cтраница 1
Подпрограмма обслуживания прерывания - набор команд, которые обрабатывают информацию, относящуюся к прерывающему устройству. [1]
Подпрограмма обслуживания прерывания опрашивает эти устройства и определяет то, в котором установлен признак прерывания. В многоуровневой одноприоритетной системе имеется одна линия сигнала прерывания и ряд линий идентификации устройства. Когда внешнее устройство выдает сигнал в общую линию прерывания, оно также устанавливает свой уникальный код на линиях идентификации. Такая система более сложна в плане ее реализации, ко обеспечивает ускоренный ответ, В одноуровневой многоприоритетной системе линии прерываний различных устройств подключены к единственному входу прерываний процес-сорй через логическую схему, обеспечивающую маскирование прерываний низкоприоритетных устройств прерываниями устройств с более высоким приоритетом. Процессор опрашивает устройства в порядке их приоритета и определяет то из них, которое инициировало прерывание. В многоуровневой многоприоритетной системе имеются средства маскирования прерываний в соответствии с приоритетом и немедленной идентификации по сигналам соответствующих линий. [2]
Подпрограмма обслуживания прерываний, начинающаяся меткой PRINT и заканчивающаяся командой RTI возврата из прерывания, размещается вслед за основной программой. Подпрограмма начинается с проверки байта, на который указывает ячейка COUNT. Если содержимое байта отлично от нуля, оно передается в регистр данных принтера, значение COUNT увеличивается на единицу ( при этом он будет указывать на следующий байт строки текста) и происходит выход из прерывания. [3]
![]() |
Логика управления векторными приоритетными прерываниями. [4] |
Это позволяет подпрограмме обслуживания прерывания изменять приоритет прерываний, разрешаемых во время ее выполнения. Как показано в верхней части рис. 5.12, программируемая маска реализуется введением в логику управления приоритетными векторными прерываниями регистра маски и компаратора. Регистр маски считается портом ВВ, и поэтому записать в него 3-битную маску можно с помощью команды вывода. Вектор прерываний от шифратора приоритетов подается в компаратор по линиям А, а маска подается в компаратор по линиям В. Если приоритет прерывания выше маски, триггер прерывания устанавливается; в противном случае запрос игнорируется. Если этот бит установлен в 1, он перевешивает выход компаратора. [5]
МП переходит на выполнение подпрограммы обслуживания прерывания. [6]
Схема прерывания предназначена для организации прерывания естественного хода программы и выполнения подпрограммы обслуживания прерывания. [7]
Следующие две команды MOV загружают вектор прерывания принтера адресом входа в подпрограмму обслуживания прерываний ( метка PRINT) и значением которое будет иметь PSW после перехода к подпрограмме обслуживания прерываний. Это разрешение помещается в то место основной программы, где необходимо вывести сообщение. [8]
Здесь ADDRN, N 0 - 7, служит указателем точки входа в подпрограмму обслуживания прерывания соответствующего уровня. Следует помнить, что таблица должна располагаться по 32-байтовой границе. [9]
Если крейт содержит несколько источников запросов, от которых может возникнуть прерывание, то подпрограмма обслуживания прерываний должна содержать часть, локализующую источник запроса. [10]
Программа 5.7, реализующая описанный выше алгоритм, содержит блок подготовки к прерываниям и подпрограмму обслуживания прерываний от счетчиков по переполнению. [11]
![]() |
Структурная схема мини - ЭВМ Momik 8b / 1000. [12] |
Блок прерываний позволяет принимать до 128 внешних сигналов, вызывающих прерывание выполняемой программы и переход к подпрограмме обслуживания прерываний. Прерывания разделяются на 4 класса по 32 сигнала. Сигналы каждого класса могут быть маскированы программой. [13]
Использование команды RST n подразумевает резервирование первых 64 ( 8 х 8) байтов памяти под таблицу входов в подпрограммы обслуживания прерываний. Обычно по адресам 8п, п 0 - 7, находятся команды JMP, передающие управление на подпрограммы обслуживания прерываний. Модификация адресной части команд JMP позволяет оперативно изменять входы в подпрограммы. [14]
Возврат в нужное место прерванной программы обеспечивается командой RTI ( ReTurn from Interrupt), которой, как правило, и должна заканчиваться подпрограмма обслуживания прерываний. [15]