3字节十六进制整数转换成双字节bcd码整数.txt

来自「实用子程序.rar本子程序库对《单片机应用程序设计技术》一书附录中的子程序库作了」· 文本 代码 · 共 40 行

TXT
40
字号
标号: HB4   功能:3字节十六进制整数转换成双字节BCD码整数

;入口条件:待转换的双字节十六进制整数在36,37,38H  中。
;出口信息:转换后的三字节BCD码整数在R2,R3、R4、R5中。
;影响资源:PSW、A、R2~R7    堆栈需求:  2字节

HB4:CLR	A	;;;BCD码初始化
	MOV	R3,A
	MOV	R4,A
	MOV	R5,A
	MOV  R2,A
	MOV	R7,#18H	       ;;转换3字节十六进制整数
HB5:	MOV	A,38H   ;	;从高端移出待转换数的一位到CY中
	RLC	A
	MOV	38H,A
	MOV	A,37H
	RLC	A
	MOV	37H,A
	MOV	A,36H   ;	;从高端移出待转换数的一位到CY中
	RLC	A
	MOV	36H,A

	MOV	A,R5	    ;;BCD码带进位自身相加,相当于乘2
	ADDC	A,R5
	DA	A	;;十进制调整
	MOV	R5,A
	MOV	A,R4
	ADDC	A,R4
	DA	A
	MOV	R4,A
	MOV	A,R3
	ADDC	A,R3
	DA  A
	MOV	R3,A
	MOV	A,R2
	ADDC	A,R2
	DA	A
	MOV	R2,A 	          ;;双字节十六进制数的万位数不超过6,不用调整
	DJNZ	R7,HB5	;;处理完16bit
	RET

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?