Асинхронный обмен
Программа такого обмена строится так: сначала проверяется готовность ВУ к обмену и если оно готово, то дается команда на обмен. ВУ сообщает о готовности установкой флага.
Пример 2.1 С помощью ВУ-2 записать в ячейку 006 коды символов слова “ДА”.
Программа для выполнения этого задания имеет вид:
Адрес | Содержимое | Комментарий | |
---|---|---|---|
Код | Мнемоника | ||
05 | FFF8 | Константа -8, используемая для сдвига | |
06 | 0000 | Ячейка для записи слова "ДА" | |
... | ... | ... | |
20 | E102 | TSF 2 | Опрос флага контроллера ВУ-2 и повторение этой операции: если ВУ-2 не готово к обмену (флаг=0). |
21 | C020 | BR 20 | |
22 | E202 | IN 2 | Это действие выполняется лишь после готовности ВУ-2, т.е. когда при выполнении TSF 2 выяснятся, что флаг=1 и пропускается BR 20, По команде IN 2 содержимое регистра данных контроллера ВУ-2 пересылается в восемь младших разрядов аккумуляторов. |
23 | E002 | CLF 2 | Сброс готовности ВУ-2 (очистка флага ВУ-2). |
24 | F600 | ROL | Код первого введенного символа сдвигается на восемь разрядов влево и освобождается место для ввода следующего символа. |
25 | 0005 | ISZ 5 | |
26 | C024 | BR 24 | |
27 | E102 | TSF 2 | Опрос флага контроллера ВУ-2 ..... (см. Комментарии к командам 20 и 21) |
28 | C027 | BR 27 | |
29 | E202 | IN 2 | Ввод кода символа (если подан сигнал готовности ВУ-2) |
2A | E002 | CLF 2 | Сброс готовности ВУ-2 |
2B | 3006 | MOV 6 | Пересылка кода слова "ДА" в ячейку 006 |
2C | F000 | HLT | Останов ЭВМ |
Две первые команды этой программы “заставляют” ЭВМ ожидать его готовности ВУ-2 к выдаче данных. Поэтому необходимо ввести код символа “Д” в регистр данных ВУ-2. После сброса готовности ВУ-2 (команда CLF 2), которая подтверждает, что данные из регистра данных контроллера ВУ-2 переписаны в аккумулятор можно приступить к набору кода символа “А”. В процессе набора этого кода ЭВМ занята сдвигом кода символа “Д” в старшие разряды аккумулятора, чтобы подготовиться к приему символа “А”, и ожиданием поступления нового сигнала готовности ВУ-2 к выдаче информации. Так как ЭВМ выполняет эти операции значительно быстрее, чем человек, набирающий код нового символа. Теперь в аккумулятор перепишется все слово “ДА”, затем оно перепишется в ячейку 006 и выполнение программы прекратиться.
Легко заметить, что при асинхронном обмене ЭВМ должна тратить время на ожидание момента готовности, а так как готовность проверяется командным путем (команда TSF), то в это время ЭВМ не может выполнять никакой другой работы по преобразованию данных.