入口条件:待转换的双字节BCD码整数在R2、R3中。
出口信息:转换后的双字节十六进制整数仍在R2、R3中。
影响资源:PSW、A、B、R2、R3、R4 堆栈需求: 4字节
BH2: MOV A,R3 ;将低字节转换成十六进制
LCALL BCDH
MOV R3,A
MOV A,R2 ;将高字节转换成十六进制
LCALL BCDH
MOV B,#100 ;扩大一百倍
MUL AB
ADD A,R3 ;和低字节按十六进制相加
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
RET
(22)标号: BHD 功能:单字节BCD码小数转换成单字节十六进制小数
入口条件:待转换的单字节BCD码数在累加器A中。
出口信息:转换后的单字节十六进制小数仍在累加器A中。
影响资源:PSW、A、R2、R3 堆栈需求: 2字节
BHD: MOV R2,#8 ;准备计算一个字节小数
BHD0: ADD A,ACC ;按十进制倍增
DA A
XCH A,R3
RLC A ;将进位标志移入结果中
XCH A,R3
DJNZ R2,BHD0 ;共计算8bit小数
ADD A,#0B0H ;剩余部分达到0.50否?
JNC BHD1 ;四舍
INC R3 ;五入
BHD1: MOV A,R3 ;取结果
RET