📄 bcd3.asm
字号:
;标号: BH3
;功能:三字节BCD码整数转换成三字节十六进制整数
;入口条件:待转换的三字节BCD码整数在R2、R3、R4中。
;出口信息:转换后的三字节十六进制整数仍在R2、R3、R4中。
;影响资源:PSW、A、B、R2、R3、R4、R5
;堆栈需求:4字节
MOV R2,#97H
MOV R3,#98H
MOV R4,#99H
BH2:
MOV A,R4 ;将低字节转换成十六进制
LCALL BCDH
MOV R4,A
MOV A,R3 ;将次高字节转换成十六进制
LCALL BCDH
MOV B,#100 ;扩大一百倍
MUL AB
ADD A,R4 ;和低字节按十六进制相加
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 ;将高字节转换成十六进制
LCALL BCDH
;扩大一万倍 #2710H=#10000
MOV B,#10H;乘低字节
MUL AB
ADD A,R4
MOV R4,A
CLR A
ADDC A,B
ADDC A,R3
MOV R3,A
MOV A,R5
MOV B,#27H;乘高字节
MUL AB
ADD A,R3
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
;标号:BCDH
;功能:单字节BCD码整数转换成单字节十六进制整数
;入口条件:待转换的单字节BCD码整数在累加器A中。
;出口信息:转换后的单字节十六进制整数仍在累加器A中。
;影响资源:PSW、A、B、R5
;堆栈需求:2字节
BCDH:
MOV B,#10H ;分离十位和个位
DIV AB
MOV R5,B ;暂存个位
MOV B,#10 ;将十位转换成十六进制
MUL AB
ADD A,R5 ;按十六进制加上个位
MOV R5,A;暂存转换后的单字节十六进制整数
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -