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

来自「C51常用子程序 [精]」· 文本 代码 · 共 30 行

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

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

HB2: CLR A ;BCD码初始化
	MOV R3,A
	MOV R4,A
	MOV R5,A
	MOV R2,#10H ;转换双字节十六进制整数
HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中
	RLC A
	MOV R7,A
	MOV A,R6
	RLC A
	MOV R6,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
	MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整
	DJNZ R2,HB3 ;处理完16bit
	RET

⌨️ 快捷键说明

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