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


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

Вывод числа в естественном виде

Запуск программы выполняется командами "В/О", "С/П". После запуска в строке комментариев в текстовом виде дублируется содержимое регистра стека RX.

Для повторного запуска ввести число и нажать "С/П".

.CHARSET 1251
; Работа со строкой комментариев
; Вывод числа в естественном виде

STRB	.EQU	1000	; Указатель на строку символов

.ORG 0
	MA		; Введённое число
	CX
	PP M 9030	; Индексный регистр 0 буфера
	PP M 9031	; Индексный регистр 1 буфера
	RMA
	PP M 9035	; Преобразовать число из RA в текст (регистр 0)

	.NUMD STRB	; Указатель на строку в памяти данных (с декрементом)
	M4		; Записать в R4
	
A1:	PP RM 9034	; Содержимое буфера (регистр 1 с автоинкрементом)
	KM4		; Записать в строку STRB
	K NOT		; Преобразовать байт 255 в 0
	F X=0 A1	; Проверка на 0, переход на A1 если не конец строки

	.NUM STRB	; 
	PP M 9027	; Вывести число в виде текста 
	CX ENT ENT	; Очистить RT, RZ и RY при выводе
	RMA		; RX - введённое значение
	R/S		; Останов
	GOTO 0		; Перейти на начало программы
.ENDP

Программа занимает 37 байт.

  0 1 2 3 4 5 6 7 8 9
00 П A Cx PP П 90 30 PP П 90 31 ИП A PP П
10 90 35 9 9 9 П 4 PP ИП 90 34 K П 4
20 K NOT F x=0 16 1 0 0 0 PP П 90 27
30 Cx B↑ B↑ ИП A С/П БП 00      

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

Вывод числа π.



Вывод числа в форматированном виде

Запуск программы выполняется командами "В/О", "С/П". После запуска в строке комментариев в текстовом виде дублируется содержимое регистра стека RX с тремя цифрами в дробной части числа.

Для повторного запуска ввести число и нажать "С/П".

.CHARSET 1251
; Работа со строкой комментариев
; Вывод числа в форматированном виде

STRB	.EQU	1000	; Указатель на строку символов

.ORG 0
	MA		; Введённое число
	CX
	PP M 9030	; Индексный регистр 0 буфера
	PP M 9031	; Индексный регистр 1 буфера
	3 		; RZ - количество цифр в дробной части
	ENT		; Подъём стека
	2		; RY - количество цифр в целой части
	RMA		; RX - введённое число
	PP M 9036	; Преобразовать число из RA в текст (регистр 0)
			; В форматированном виде

	.NUMD STRB	; Указатель на строку в памяти данных (с декрементом)
	M4		; Записать в R4
	
A1:	PP RM 9034	; Содержимое буфера (регистр 1 с автоинкрементом)
	KM4		; Записать в строку STRB
	K NOT		; Преобразовать байт 255 в 0
	F X=0 A1	; Проверка на 0, переход на A1 если не конец строки

	.NUM STRB	; 
	PP M 9027	; Вывести число в виде текста 
	CX ENT ENT	; Очистить RT, RZ и RY при выводе
	RMA		; RX - введённое значение
	R/S		; Останов
	GOTO 0		; Перейти на начало программы
.ENDP

Программа занимает 40 байт.

  0 1 2 3 4 5 6 7 8 9
00 П A Cx PP П 90 30 PP П 90 31 3 B↑
10 2 ИП A PP П 90 36 9 9 9 П 4 PP ИП
20 90 34 K П 4 K NOT F x=0 19 1 0 0 0
30 PP П 90 27 Cx B↑ B↑ ИП A С/П БП 00

Строка комментариев - вывод числа Пи с тремя знаками после запятой

Вывод числа π с тремя знаками после запятой (с автоматическим округлением).



Вывод числа в шестнадцатеричном виде

Для вывод числа в строку комментариев в шестнадцатеричном виде предназначена специальная функция R9102. Перед её использованием следует установить разрядность чисел в регистре R9100 (1 - 8 бит, 2 - 16 бит, 3 - 24 бита, 4 - 32 бита). Переданное функции значение преобразуется в целое и ограничивается в соответствии с выбранным диапазоном.

В приведённой программе установлена разрядность 32 бита.

Запуск программы выполняется командами "В/О", "С/П". После запуска в строке комментариев в текстовом виде дублируется содержимое регистра стека RX в шестнадцатеричном виде.

Для повторного запуска ввести следующее число и нажать "С/П".

.CHARSET 1251
; Работа со строкой комментариев
; Вывод числа в шестнадцатеричном виде

.ORG 0
	MA
	4 PP M 9100	; Установить разрядность 32 бита
	CX ENT ENT	; Очистка стека
	RMA		; Введённое число
	PP M 9102	; Вывод в строку комментариев в шестнадцатеричном виде
	R/S		; Останов
	GOTO 0		; Перейти на начало программы
.ENDP

Программа занимает 15 байт. Собственно вывод числа в шестнадцатеричном виде - 3 байта (запись в R9102 по адресам 09-11).

  0 1 2 3 4 5 6 7 8 9
00 П A 4 PP П 91 00 Cx B↑ B↑ ИП A PP П
10 91 02 С/П БП 00          

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

Вывод числа 12345678 = 0BC614Eh.



Вывод числа в формате float

Формат чисел с плавающей точной одинарной точности float (IEEE 754) предназначен для представления чисел со знаком в диапазоне приблизительно от 10-38 до 1038 с точностью порядка 7-8 десятичных цифр мантиссы. Этого достаточно для большинства реальных применений.

Программа преобразует введённое в RX число в указанный формат.

Запуск программы выполняется командами "В/О", "С/П". После запуска в строке комментариев выводится соответствующее число float в шестнадцатеричном виде.

Для повторного запуска ввести следующее число и нажать "С/П".

.CHARSET 1251
; Работа со строкой комментариев
; Преобразование числа в формат float

.ORG 0
	MA		; Сохранить введённое число в RA
	CX		; Смещение в универсальном буфере
	PP M 9030	; Индексный регистр 0 буфера
	MB		; Записать 0 в RB
	RMA		; Введённое число
	PP M 9038	; Преобразовать в формат float в буфере
	4
	PP M 9100	; Установить разрядность двоичных чисел 32 бита
	M0		; Записать 4 в регистр 0 (Формат float - 4 байта)
	M3		; Для адресации буфера
A1:	RMB 256 * MB	; Умножить содержимое RB на 256
	KRM3		; Декремент содержимого R3
	RM3		; Смещение очередного байта (справа-налево в буфере)
	PP M 9031	; Установить смещение в универсальном буфере
	PP RM 9033	; Считать байт из буфера
	RMB + MB	; Прибавить к числу в RB
	FL0 A1		; Цикл по байтам в буфере
			; В RX - целое число в диапазоне от 0 до 4294967295 (0FFFFFFFFh)
	PP M 9102	; Преобразовать его в шестнадцатиричное значение 
			; и записать в строку комментариев

	CX ENT ENT	; Очистить стек
	RMA		; B RX - введённое значение

	R/S		; Останов
	GOTO 0		; Перейти на начало программы
.ENDP

Программа занимает 45 байт.

  0 1 2 3 4 5 6 7 8 9
0000 П A Cx PP П 90 30 П B ИП A PP П 90 38
0010 4 PP П 91 00 П 0 П 3 ИП B 2 5 6
0020 × П B K ИП 3 ИП 3 PP П 90 31 PP ИП 90 33
0030 ИП B + П B F L0 16 PP П 91 02 Cx B↑
0040 B↑ ИП A С/П БП 00          

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

Число π соответствует значению 40490FDBh.


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