Организация обмена по прерыванию программы в БЭВМ. Пример программы. Цикл прерывания

Принцип организации обмена по прерыванию

Аппаратные прерывания в БЭВМ позволяют процессору не тратить время на ожидание готовности внешних устройств (ВУ), а выполнять полезную работу. Инициатором обмена выступает само ВУ: при готовности оно посылает сигнал по линии запроса прерывания (IntRq).

Процессор проверяет наличие запросов в конце выполнения каждой инструкции в специальном цикле прерывания. Обмен возможен только при наличии флага разрешения прерываний EI (в регистре состояния PS) и включённого тумблера «Работа» (PS(W) = 1).

Цикл прерывания

Цикл прерывания в БЭВМ выполняется аппаратно на уровне микропрограммного устройства управления. Он состоит из следующих микроопераций:

  1. Проверка условий и IP -(SP)

    INTS - это микрокоманда, который заставляет процессор выставить сигнал предоставления прерывания и перебрать все прерывания по приоритету

  2. PS -(SP) и вычисление адреса ячейки, в которой начало программы обработки прерывания

  3. Загрузка нового состояния процессора

Пример программы настройки и обработки прерывания

Программа настраивает ВУ-3 (текстовый принтер) на прерывание по вектору №3. Сам обработчик просто записывает символ в память по запросу.

ORG 0x0
V3: WORD $INT3, 0x180
 
ORG 0x20
START:  DI
        LD #0x0B ; 0x0B=0b1011.
; Бит 3 - разрешаем прерывания, биты 0-2 - вектор 3
        OUT 7 ; Запись в ВУ-3 (MR)
        EI 
LOOP:   INC
        BR LOOP
 
; --- Обработчик прерывания ---
ORG 0x40
INT3:
        PUSH ; Сохранение AC в стек
        IN 6 ; Ввод из ВУ-3 в AC
        ST MEM_CELL ; Сохранение в память
        POP ; Восстановление аккумулятора
        IRET ; Возврат из прерывания
 
MEM_CELL: WORD 0