Вывод символа в строку комментариев


Главная / ЭКВМ / Программы / Примеры

Строка комментариев располагается в нижней строке экрана ЭКВМ и выводится на экран в режиме автоматической работы, а также при выполнении программы, после исполнения команды "К ЭКР".

В строку комментариев автоматически выводятся сообщения об ошибках.

Для работы со строкой комментариев используются функции "вывод символа" (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

  0 1 2 3 4 5 6 7 8 9
00 Cx 1 0 PP П 90 25 1 4 3 PP П
10 90 25 2 2 4 PP П 90 25 1 6
20 8 PP П 90 25 1 7 2 PP П 90 25
30 1 6 5 PP П 90 25 2 2 4 PP П
40 90 25 3 2 PP П 90 25 4 9 PP П
50 90 25 С/П              

Строка комментариев - вывод символа

Cоответствующие символам числа поочерёдно вводятся в регистр стека X и выводятся в строку комментариев при помощи функции 9025.

После останова программа переходит в режим автоматической работы. На экране в строке комментариев выводится текст "Пример 1". В регистрах стека содержатся последние символы текста: RT='е', RZ='р', RY='(пробел)', RX='1'.

Вышеприведённая программа выполнена весьма неоптимальным образом и приведена только в качестве примера работы с функцией 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

  0 1 2 3 4 5 6 7 8 9
00 Cx 1 7 PP П 90 42 PP ИП 90 44 F x≠0
10 16 PP П 90 25 БП 06 С/П 0Ah 8Fh E0h
20 A8h ACh A5h E0h 20h 32h 00h      

Строка комментариев - вывод символа в цикле

Cоответствующие символам байты выбираются из памяти программ и выводятся в строку комментариев при помощи функции 9025. Символы выводятся в цикле, пока из памяти не будет считано нулевое значение, являющееся здесь признаком окончания строки.

После останова программа переходит в режим автоматической работы. На экране в строке комментариев выводится текст "Пример 2". В регистрах стека содержатся последние символы текста: RT='р', RZ='(пробел)', RY='2', RX=0 (конец строки).

Основная часть данной программы занимает 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

  0 1 2 3 4 5 6 7 8 9
00 Cx 9 5 F x2 П A 1 9 PP П 90 42
10 PP ИП 90 44 F x≠0 18 K П A БП 10 С/П 0Ah
20 8Fh E0h A8h ACh A5h E0h 20h 33h 00h  

Строка комментариев - вывод символа с косвенной адресацией R9025

Программа работает аналогично предыдущей.

После останова в строке комментариев выводится текст "Пример 3". В регистрах стека содержатся последние символы текста: RT='р', RZ='(пробел)', RY='3', RX=0 (конец строки).

В этой программе для обращения функции вывода символа применяется косвенная адресация через регистр 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

  0 1 2 3 4 5 6 7 8 9
00 Cx 4 7 PP П 90 42 PP ИП 90 44 F x≠0
10 46 PP П 90 25 K ЭКР 5 0 B↑ 2 PP П
20 90 52 PP ИП 90 52 F x=0 22 0 B↑ 2
30 0 K СЧ × 1 0 + PP П 90 52 PP ИП
40 90 52 F x=0 39 БП 06 С/П 0Ah 8Fh E0h
50 A8h ACh A5h E0h 20h 34h 00h      

Строка комментариев - вывод символа с задержкой

После останова в строке комментариев выводится текст "Пример 4". При работе программы символы на экране появляются с неравномерной задержкой.


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)