![]() |
Простые системы прерыванияВ простейших системах, основанных на механизме прерываний, не выполняется никаких действий, кроме простого ожидания прерывания, указывающего на наличие входных данных. Такие данные могут поступать с клавиатуры, телетайпа, модема или преобразователя. Данные в таких системах принимаются так редко, что ЦП всегда успевает завершить обработку очередной порции данных до принятия новой. Для таких простых систем использование прерываний — скорее удобство, чем необходимость. Сигнал «данные готовы» от УВВ подается непосредственно на вход запроса на прерывание процессора; при этом не требуются ни дополнительный порт, ни прграммные средства для опроса порта. На рис. 9.17 показана конфигурация аппаратуры для такого простейшего случая. Сигнал по линии «данные готовы» устанавливает D-триггер и вызывает прерывание. D-триггер фиксирует сигнал и преобразует длительный сигнал (продолжающийся несколько тактов генератора тактовых сигналов) в короткий импульс. Центральный процессор реагирует на прерывание путем выполнения процедуры обработки прерывания. Схема, которая открывает порт данных на время операции ввода, также сбрасывает триггер. Чтобы вызвать новое прерывание, потребуется новый сигнал по линии «данные готовы». Чтобы указать процессору нужную подпрограмму обработки прерывания, может потребоваться дополнительное оборудование. Для подобных систем главная программа не содержит почти никаких других команд, кроме команды ОСТАНОВ (HALT) или ОЖИДАНИЕ ПРЕРЫВАНИЯ (WAIT FOR INTERRUPT). Если у процессора нет ни той, ни другой команды, то можно получить тот же результат с помощью команды безусловного перехода на эту команду; HERE JUMP HERE В системе, показанной на рис. 9.17, не требуется, чтобы подпрограмма обработки прерывания возвращала управление главной программе. Фактически процедура обработки прерывания может заканчиваться переходом по тому же адресу, по которому передается управление при сбросе; в результате предшествовавшее прерыванию состояние будет восстановлено. Разумеется, не нужно сохранять ни значения флагов процессора, ни содержимое регистров и ячеек памяти. Нет необходимости и в программных или аппаратных средствах для определения источника прерывания, так как имеется только один такой, источник. При сбросе должен сбрасываться и триггер запроса на прерывание, чтобы система начала работу в исходном состоянии. Вся программа выглядит следующим образом: ORG RSTADD Установить счетчик адреса. Настроить процессор на передачу управления процедуре обработки прерывания ENABLE INTERRUPTS Разрешить прерывания. HALT г Останов * ORG INTADD Установить счетчик адреса, :Выполнить программу JUMP RSTADD Перейти по адреру RSTADD | С помощью специальной псевдокомандьГ ассемблера УСТАНОВИТЬ СЧЕТЧИК АДРЕСА (ORG) задается нужный адрес начала подпрограммы обработки прерывания. На рис. 9.18 показан процесс обработки прерывания, включающий в себя сброс триггера задроса. на^ прерывание.
http://www.zubokey.ru/ лечение зубов недорогая стоматология. |