Этот вид обмена отличается от асинхронного тем, что сигнал готовности ВУ к обмену анализируется не программным, а аппаратным путем. ЭВМ может выполнять любую не связанную с обменом программу (будем называть ее основной), а когда из ВУ по линии "Запрос прерывания" (рис. 2.1.) поступит сигнал готовности ВУ к приему или выдаче информации, прервать (приостановить) выполнение этой программы на время выполнения программы обмена данными. Все эти действия осуществляются с помощью контроллера прерываний, входящего в состав устройства управления базовой ЭВМ.
Команды EI (Разрешение прерывания) и DI (Запрещение прерывания) переводят контроллер прерывания в одно из двух состояний, в которых он соответственно реагирует или не реагирует на сигналы готовности ВУ, передаваемые по линии "Запрос прерывания".
Если контроллер прерываний установлен в состояние разрешения прерывания, то после выполнения каждой команды программы управление передается контроллеру прерываний, который анализирует состояние линии "Запрос прерывания". При отсутствии на линии сигнала прерывания начинается выборка и исполнение следующей команды и данный шаг повторяется. При наличии запроса прерывания контроллер прерывания переходит в состояние запрещения прерывания, в ячейку с адресом 000 заносится содержимое СК (адрес следующей команды основной программы, которая выполнялась бы при отсутствии запроса прерывания), и управление передается команде, расположенной в ячейке 001. Так происходит переход к подпрограмме обработки прерывания, первая команда которой должна располагаться в ячейке 001.
Пример 2.2. Составить программу, которая периодически (с периодом в три цикла команды) наращивает на 1 содержимое аккумулятора. Восемь младших разрядов аккумулятора должны выводиться на ВУ-1 по его запросу (нажатие клавиши F1), а по запросу ВУ-2 код, набранный в регистре данных ВУ-2 должен помещаться в ячейку 25.
Основная программа решения задачи примера 2.2.
Ад- рес | Содержимое | Комментарии | |
Код | Мнемон. | ||
... ... | FA00 F200 .... F800 F100 C022 .... | EI CLA ....... INC NOP BR 22 ....... | Установка состояния разрешения прерывания Очистка аккумулятора ............................................. Цикл для наращивания содержимого аккумулятора ............................................. Ячейка для хранения кодов, поступающих с ВУ-2 |
Если команды этой программы занести в память базовой ЭВМ, установить в СК пусковой адрес 20 и нажать клавишу F7 (в режиме "РАБОТА", то начнет выполняться бесконечный цикл наращивания содержимого аккумулятора. Когда же будет нажата любая из трех клавиш F1,F2,F3, то будет выполнен переход к подпрограмме обработки прерываний.
Подпрограмма обработки прерываний для примера 2.2.
Ад- рес | Содержимое | Комментарии | |
Код | Мнемон. | ||
С030 | BR 30 | Ячейка для хранения адреса возврата (адрес заносится, когда происходит прерывание). Первая команда подпрограммы - переход к основному ее тексту, размещенному в ячейках 30…4C. | |
3A 3B 3C 3D 3E 3F 4A 4B 4C | 304B F600 304C E102 C036 C039 E101 C043 C03E F200 E202 E002 C044 F200 404B E301 E001 C044 E003 F200 404C F700 F200 404B FA00 C800 | MOV 4B ROL MOV 4C TSF 2 BR 36 BR 39 TSF 1 BR 43 BR 3E CLA IN 2 CLF 2 MOV 25 BR 44 CLA ADD 4B OUT 1 CLF 1 BR 44 CLF 3 CLA ADD 4C ROR CLA ADD 4B EI BR (0) | Сохранение в буферных ячейках 4B и 4С содержимого аккумулятора и регистра переноса Опрос флага ВУ-2. Если он сброшен, то переход к опросу флага ВУ-1. В противном случае переход на ввод данных из ВУ-2. Опрос флага ВУ-1. Если он сброшен, то переход к сбросу флага ВУ-3. В противном случае переход на вывод данных в ВУ-1. Ввод данных из ВУ-2, пересылка их в ячейку 25 сброс флага ВУ-1, переход к восстановлению содержимого регистров и выходу из подпрограммы. Пересылка в аккумулятор содержимого буферной ячейки 4B, вывод на ВУ-1 восьми младших разрядов аккумулятора, сброс флага ВУ-1, переход к восстановлению А и С и выходу из подпрограммы. Очистка флага ВУ-3. Восстановление содержимого регистра переноса и аккумулятора. Возобновление состояния разрешения прерывания и выход из подпрограммы. Ячейки для сохранения содержимого аккумулятора и регистра переноса. |
ЛАБОРАТОРНАЯ РАБОТА № 5
Исследование работы ЭВМ при асинхронном обмене данными С ВУ
Цель работы - изучение организации системы ввода-вывода базовой ЭВМ, команд ввода-вывода и исследование процесса функционирования ЭВМ при обмене данными по сигналам готовности внешних устройств.
Подготовка к выполнению работы. Закодировать заданную программу и составить ее описание. Команды программы надо разместить, начиная с ячейки 10, а коды символов - начиная с ячейки 20.
Порядок выполнения работы.
1. Занести программу в память базовой ЭВМ.
2. Запустить ЭВМ в режиме автоматического выполнения программы ("Работа") с 10 адреса, и ввести в память четыре первых символа заданного слова.
Примечание. Ввод информации в регистр данных ВУ-2 производится с клавиатуры после нажатия клавиш "Shift+F2" и подтверждается нажатием клавиши "Enter". Флаг готовности ВУ-2 устанавливается клавишей F2.
3. Перевести ЭВМ в режим покомандного выполнения программы ("Останов") и ввести в ее память еще два символа заданного слова, заполняя таблицу результатов (по форме табл. 1.3.).
Содержание отчета по работе.
Титульный лист, цель работы, текст программы, заданное слово и коды его символов, таблица с результатами и описание программы.
Исходные данные к лабораторной работе.
1. Программа асинхронного обмена данными:
A: TSF 2 Опрос флага ВУ-2 и повторение этой операции, если
BR A ВУ-2 не готово к обмену (флаг=0)
IN 2 Ввод данных в аккумулятор, если флаг=1
CLF 2 Сброс флага ВУ-2
MOV (B) Пересылка содержимого аккумулятора в память и увеличение на 1 адреса элемента массива (B)+1→ B
ISZ C Наращивание на 1 содержимого счетчика элементов
BR A массива и переход по адресу А, пока (С)<0.
HLT Останов ЭВМ.
Примечание. Здесь А - адрес начала программы; В - адрес ячейки с начальным адресом массива (любая индексная ячейка); С - адрес ячейки, содержащей счетчик количества еще не введенных символов.
2. Варианты вводимых слов:
1) ОПТИКА; 2) РАБОТА; 3) МАШИНА; 4) ПАМЯТЬ; 5) ЯЧЕЙКА;
6) ДАННЫЕ.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Какие устройства ввода-вывода имеются в базовой ЭВМ?
2. Что из себя представляет асинхронный обмен данными с устройствами ввода-вывода в базовой ЭВМ?
3. Порядок выполнения работы.
4. Объяснение работы программы.
ЛАБОРАТОРНАЯ РАБОТА № 6
Исследование работы ЭВМ при обмене данными с ВУ в режиме прерывания программы
Цель работы - изучение организации процесса прерывания программы и исследование порядка функционирования ЭВМ при обмене данными в режиме прерывания программы.
Домашнее задание.
Написать комплекс программ, обеспечивающий обмен данными с ВУ в режиме прерывания программы. Основная программа должна наращивать на 1 (начиная с нуля) содержимое (обозначим его буквой Х) какой-либо ячейки памяти в непрерывном цикле. Цикл для наращивания Х не должен содержать более трех команд.
Варианты задания:
1. По запросу ВУ-1 вывести 2Х, а по запросу ВУ-3 вывести Х.
2. По запросу ВУ-1 вывести Х+2, а по запросу ВУ-3 вывести Х-2.
3. По запросу ВУ-1 вывести 2Х+2, а по запросу ВУ-3 вывести Х-5.
4. По запросу ВУ-1 вывести Х+10, а по запросу ВУ-3 вывести Х+90.
5. По запросу ВУ-1 вывести 3Х, а по запросу ВУ-3 вывести Х.
6. По запросу ВУ-1 вывести 2Х-2, а по запросу ВУ-3 вывести Х+50.
Подготовка к выполнению работы. Завершить домашнее задание и составить описание разработанного комплекса программ для заданного варианта.
Порядок выполнения работы.
1. Занести комплекс программ в память базовой ЭВМ.
2. Запустить ЭВМ в режиме "РАБОТА" и проверить правильность функционирования разработанного комплекса программ.
Содержание отчета по работе. Титульный лист, цель работы, тексты основной программы и подпрограмм обработки прерываний; результаты выполнения комплекса программ.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Как организуется обмен с внешними устройствами базовой ЭВМ в режиме прерывания?
2. Порядок выполнения работы.
3. Объяснение работы программы.