Вывод символа в строку комментариев |
Главная / ЭКВМ / Программы / Примеры |
Строка комментариев располагается в нижней строке экрана ЭКВМ и выводится на экран в режиме автоматической работы, а также при выполнении программы, после исполнения команды "К ЭКР". В строку комментариев автоматически выводятся сообщения об ошибках. Для работы со строкой комментариев используются функции "вывод символа" (R9025), "вывод строки символов из памяти программ" (R9026) и "вывод строки символов из памяти данных" (R9027). Пример 1. Вывод символа в строку комментариев.CHARSET 1251 ; Работа со строкой комментариев ; Пример 1. ; Вывод отдельных символов (R9025) .ORG 0 CX ; Очистка регистра X и флага ввода ; Очистка строки комментариев 10 ; Символ ПС (перевод строки) PP M 9025 ; Символы записываются в регистр X ; и выводятся обращением к функции R9025 143 ; 'П' PP M 9025 224 ; 'р' PP M 9025 168 ; 'и' PP M 9025 172 ; 'м' PP M 9025 165 ; 'е' PP M 9025 224 ; 'р' PP M 9025 32 ; 'пробел' PP M 9025 49 ; '1' PP M 9025 R/S ; Останов .ENDP
Вышеприведённая программа выполнена весьма неоптимальным образом и приведена только в качестве примера работы с функцией R9025. Пример 2. Вывод символа в строку комментариев в цикле.CHARSET 1251 ; Работа со строкой комментариев ; Пример 2. ; Вывод отдельных символов в цикле .ORG 0 CX ; Очистка регистра X и флага ввода .NUML STRM ; Адрес начала текста PP M 9042 ; Индексный регистр памяти программ A1: PP RM 9044 ; Чтение содержимого памяти программ ; с автоинкрементом индексного регистра F X!=0 A2 ; Проверка на нулевой символ - окончание строки PP M 9025 GOTO A1 ; Переход на A1 - цикл по символам строки A2: R/S ; Останов STRM: ; Строка "Пример 2\0" .DB 10,143,224,168,172,165,224,32,50,0 .ENDP
Основная часть данной программы занимает 17 байт. В качестве ограничителя строки здесь можно использовать любой символ, если должным образом изменить проверку условия. Пример 3. Вывод символа в строку комментариев в цикле с использованием косвенной адресации.CHARSET 1251 ; Работа со строкой комментариев ; Пример 3. ; Вывод отдельных символов в цикле с использованием косвенной адресации .ORG 0 CX ; Очистка регистра X и флага ввода 95 FX^2 ; 95*95=9025 MA ; Номер регистра в RA для косвенной адресации .NUML STRM ; Адрес начала текста PP M 9042 ; Индексный регистр памяти программ A1: PP RM 9044 ; Чтение содержимого памяти программ ; с автоинкрементом индексного регистра F X!=0 A2 ; Проверка на нулевой символ - окончание строки KMA ; Запись в R9025 с использованием косвенной адресации GOTO A1 ; Переход на A1 - цикл по символам строки A2: R/S ; Останов STRM: ; Строка "Пример 3\0" .DB 10,143,224,168,172,165,224,32,51,0 .ENDP
В этой программе для обращения функции вывода символа применяется косвенная адресация через регистр RA. Для формирования адреса регистра функции используется выражение 952=9025, что позволяет сократить размер программы на один байт. Пример 4. Вывод символа в строку комментариев в цикле с задержкойПосимвольный вывод позволяет реализовать различные эффекты, к примеру, имитации набора текста вручную. Следующая программа выводит в строку комментариев по одному символу, сопровождая каждый коротким звуком и задержкой на 0,1-0,3 сек. CHARSET 1251 ; Работа со строкой комментариев ; Пример 4. ; Вывод отдельных символов в цикле с задержкой .ORG 0 CX ; Очистка регистра X и флага ввода .NUML STRM ; Адрес начала текста PP M 9042 ; Индексный регистр памяти программ A1: PP RM 9044 ; Чтение содержимого памяти программ ; с автоинкрементом индексного регистра F X!=0 A4 ; Проверка на нулевой символ - окончание строки PP M 9025 K SCR ; Обновление экрана 50 ENT 2 ; 50 Гц, 20 мс. PP M 9052 ; Таймер 2 A2: PP RM 9052 F X=0 A2 0 ENT 20 K RAN * 10 + ; 0 Гц, 100-300 мс. PP M 9052 ; Таймер 2 A3: PP RM 9052 F X=0 A3 GOTO A1 ; Переход на A1 - цикл по символам строки A4: R/S ; Останов STRM: ; Строка "Пример 4\0" .DB 10,143,224,168,172,165,224,32,52,0 .ENDP
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |