ВУЗ:
Составители:
20
Программа 2
MOV #1000, Rl
Ml: TSTB@#177560
BPL Ml
MOVB @#177562, @R1
M2: TSTB@#177564
BPL M2
MOVB @R1,@#177566
CMPB#12, (Rl)+
BNE M1
HALT
;3агрузка указателя таблицы
;Опрос готовности клавиатуры
;Если не готова, то переход на Ml
;Перегрузка символа в память
;Опрос готовности экрана
;Если не готов, идти на М2
;Передача символа на экран
;Сравнение символа с ПС, если
;не равны, ввод следующего символа
;Останов
Специфической особенностью программы является использование команды
BPL (ветвление, если плюс). Данная особенность связана с представлением чисел в
ЭВМ. Признаком положительного числа является 0 в старшем разряде, а
отрицательного - 1. Для байта - это 7-й разряд.
Главный недостаток обмена с опросом бита готовности связан с тем, что
процессор во время ожидания ввода ничем другим заниматься
не может. Это снижает
производительность при выполнении программ.
Совмещение автономной работы периферийных устройств с одновременной
работой процессора достигается в режиме прерывания программы.
На рис. 4,6 показан алгоритм ввода символов в память с использованием
прерывания. Внутренний цикл имитирует основную программу, при этом она будет
работать в так называемом фоновом режиме. Вектор прерывания записан по
60-му
адресу. Следующая ячейка памяти отводится под установку приоритета процессора.
Программа имеет вид:
Программа 3
MOV#1000, R1 ;3агрузка указателя таблицы символов
МОV #17776, R6 ;3агрузка указателя стека
MOV #SUB, @#60 ;3агрузка адреса обслуживаемой подпрограммы
MOV # 100, @# 177560 ;3агрузка признака разрешения прерывания
Ml: WAI ;Ожидание прерывания
СМРВ #12,(R1)+ ;Сравнение символа с ПС, если не
BNE Ml ;конец ввода, то идти на метку Ml
BIC # 100,@# 177560 ;Очистка признака разрешения прерывания
HALT ;Останов
;*** Подпрограмма обслуживания прерывания ***
SUB MOVB @#177562, @R1 ;Перегрузка символа в память
MOVB @R1, @# 177566 ;Передача символа на
экран
RTI ;Возврат из прерывания
При обслуживании по прерыванию нескольких внешних устройств во второе
слово вектора прерывания необходимо записать число 200(8), устанавливающее
РСП[7]=1 и запрещающее процессору во время работы по
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »