Составители:
89
установился в единичное состояние) и окончилось выполнение любой
текущей команды, кроме команд D1 ("Запрещение прерывания") и E1.
Если в момент запроса на прерывание исполнялась команда Е1, то
состояние прерывания наступит после выполнения следующей за Е1
командой (см. шаг 7).
3. В зависимости от конкретных условий подпрограмма обработки
прерываний может иметь любой вид, но она всегда должна начинаться с
команды, расположенной в ячейке с адресом 1, и заканчиваться
командами Е1 и BR (0), следующими друг за другом. Команда Е1 служит
для восстановления состояния разрешения прерывания, которое было
автоматически заменено на запрещение прерывания при входе в
подпрограмму, для того чтобы во время обработки текущего прерывания
ЭВМ не реагировала на последующие.
Пример 3.3. Составить программу, которая периодически (с периодом в три цикла
команды) наращивает на "единицу содержимое аккумулятора. Восемь младших
разрядов последнего должны выводиться на ВУ-3 по запросу последнего (нажатие
кнопки ВВОД N), а по запросу с ВУ-1 код, набранный на его тумблерах, должен
помещаться в ячейку с адресом 25.
Основная программа решения такой задачи достаточно проста. Она может
начаться с установки разрешения прерывания (Е1) и очистки аккумулятора (CLA).
Затем должен быть организован цикл для наращивания на единицу содержимого
аккумулятора. Этот цикл может содержать всего две команды: "Инкремент
аккумулятора" (INC) и команду безусловного перехода (BR) для возврата к INC.
Однако по заданию такой цикл должен состоять из .трех команд, и поэтому между INC
и BR можно поставить команду NOP ("Нет операции"). Подобная программа
приведена в табл. 3.4.
Если команды этой программы занести в память ЭВМ, установить в счетчик
команд пусковой адрес 0020 и нажать кнопку ПУСК, то начнет выполняться
бесконечный цикл наращивания содержимого аккумулятора. В этом цикле все время
будут повторяться команды: INC, NOP, BR 22, INC, NOP, BR 22, INC и т. д. Когда же
на пульте управления (см. рис. 3.1) будет нажата любая из трех кнопок (ГОТОВ,
ГОТОВ или ВВОД N), то произойдет передача управления команде, расположенной в
ячейке 1, а в ячейку 0 будет записан адрес той из вышеперечисленных команд, которая
выполнялась бы при отсутствии запроса на прерывание. Так осуществляется переход к
подпрограмме обработке прерываний, которая должна быть расположена начиная с
ячейки 1.
Таблица 3.4
Основная программа решения задачи примера 3.3
Адрес
Содержимое
Комментарии
Код
Мнемоника
20
21
FA00
F200
E1
CLA
Установка состояния разрешения прерывания
Очистка аккумулятора
22
23
24
F200
F100
С022
INC
NOP
BR 22…
Цикл для наращивания содержимогоаккумулятора
25
0000
Ячейка для хранения кодов, поступающих из ВУ-1
Страницы
- « первая
- ‹ предыдущая
- …
- 90
- 91
- 92
- 93
- 94
- …
- следующая ›
- последняя »
