双字节十六进制小数转换成双字节BCD码小数.txt
来自「C51常用子程序 [精]」· 文本 代码 · 共 34 行
TXT
34 行
标号: HBD2功能:双字节十六进制小数转换成双字节BCD码小数
入口条件:待转换的双字节十六进制小数在R2、R3中。
出口信息:转换后的双字节BCD码小数仍在R2、R3中。
影响资源:PSW、A、B、R2、R3、R4、R5 堆栈需求:6字节
HBD2: MOV R4,#4 ;四位十进制码
HBD3: MOV A,R3 ;原小数扩大十倍
MOV B,#10
MUL AB
MOV R3,A
MOV R5,B
MOV A,R2
MOV B,#10
MUL AB
ADD A,R5
MOV R2,A
CLR A
ADDC A,B
PUSH ACC ;保存溢出的一位十进制码
DJNZ R4,HBD3 ;计算完四位十进制码
POP ACC ;取出万分位
MOV R3,A
POP ACC ;取出千分位
SWAP A
ORL A,R3 ;拼装成低字节BCD码小数
MOV R3,A
POP ACC ;取出百分位
MOV R2,A
POP ACC ;取出十分位
SWAP A
ORL A,R2 ;拼装成高字节BCD码小数
MOV R2,A
RET
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?