;假设一个十六进制数为7A
MOV R0,7A
MOV A,R0
ANL A,#0FH;取低4位
CJNE A,#9,L1;(A)不等于9跳转到L1
MOV R2,A
SJMP L4
L1:JNC L2;C等于0跳转到L2,即(A)大于9
MOV R2,A
SJMP L4
L2 :CJNE A,#0DH,L3;(A)不等于13跳转到L3
MOV R2,#19
SJMP L4
L3:ANL A,#5
ADD A,#16
MOV R2,A
L4:MOV A,R0
SWAP A
ANL A,#0FH
CJNE A,#9,L5
MOV R3,A
SJMP L8
L5:JNC L6
MOV R3,A
SJMP L8
L6:CJNE A,#ODH,L7
MOV R3,#19
SJMP L8
L7:ANL A,#5
ADD A,#16
MOV R3,A
L8:MOV A,R2
ANL A,#0F0H
JNZ L9;判断A即R2高4位是否为0,A不为0跳转到L9
MOV A,R3;当R2的高4位为零执行下面几条指令,将R3的低4位移到R2高4位
SWAP A
ANL A,#F0H
ADD A,R2
MOV R2,A
MOV A,R3;以下几条指令用来将R3的高4位移到低4位
SWAP A
ANL A,#0FH
MOV R3,A
L9:MOV P0,R2;输出转换后的BCD码
MOV P2,R3
我有现成的子程序;char型 int型 long型 带正负 bin 与dec 互转 汇编的速度挺快 楼主可告诉我邮箱 我给你发过去QQ:525019550 email:lclzg@163.com