Составители:
87
по приостановке программы и переходу к подпрограмме обмена
реализуются в базовой ЭВМ с помощью контроллера прерываний,
входящего в состав устройства управления (см. рис. 3.1).
По командам "Разрешение прерывания" (Е1) или "Запрещение
прерывания" (D1) контроллер прерываний переходит в одно из двух
состояний, в которых он соответственно реагирует или не реагирует на
сигналы готовности ВУ, передаваемые по линии "Запрос прерывания".
Если контроллер установлен в состояние разрешения прерывания, то
последовательность шагов по осуществлению рассматриваемой передачи
данных обычно имеет такой вид.
Шаг 1. По завершении выполнения текущей команды основной
программы управление передается контроллеру прерывания. Если в этот
момент на линии "Запрос прерывания" нет сигнала о единичном состоянии
флага какого-либо из ВУ, то начинаются выборка и исполнение
следующей команды основной программы и данный шаг повторяется. При
наличии запроса прерывания от ВУ выполняется второй шаг.
Шаг 2. Контроллер прерываний переходит в состояние запрещения
прерывания, в ячейку памяти с адресом 0 заносится содержимое счетчика
команд (адрес следующей команды основной программы, которая
выполнялась бы в отсутствие прерывания), и управление передается
команде, расположенной в ячейке 1.
Два последних действия имитируют выполнение команды
"Обращение .к подпрограмме" (JSR 0), которая как бы вставлена между
только что выполненной и следующей командами основной программы
(см. параграф 2.4). Такую подпрограмму, текст которой должен написать
сам пользователь, обычно называют подпрограммой обработки или
обслуживания прерываний. Она всегда начинается в ячейке с адресом 1 (в
ячейке 0 хранится адрес возврата из подпрограммы) и может иметь самый
различный характер в зависимости от набора ВУ, подключенных к ЭВМ, и
принципов построения основной программы. Чаще всего, однако, это
подпрограмма требует использования аккумулятора, и поэтому одним из
первых действий является запоминание содержимого аккумулятора и
регистра переноса. Затем выясняется источник прерывания (путем опроса
флагов определяется ВУ, флаг которого установлен в единичное
состояние) и выполняется передача данных. Заканчивается подпрограмма
восстановлением содержимого аккумулятора и регистра переноса,
разрешением прерывания и выходом из подпрограммы на команду, адрес
которой хранится в ячейке 0. Эти функции определяют содержание
следующих шагов.
Шаг 3. Производится запоминание в памяти содержимого
аккумулятора и регистра переноса. Для этого требуются минимум три
команды: пересылка содержимого аккумулятора в специально отведенную
буферную ячейку (MOV В1), циклический сдвиг (обычно влево) для того,
Страницы
- « первая
- ‹ предыдущая
- …
- 88
- 89
- 90
- 91
- 92
- …
- следующая ›
- последняя »
