51单片机码制转换 请各位指点

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:54:50
编BCD码转二进制数的子程序,以下网友给的提示,我不理解
ORG 0000H
BCD EQU R2;程序以R2寄存器存储要转化的BCD码,你也可以用其他的存储单元
LJMP MAIN
;程序功能将BCD码转为二进制码
;程序入口BCD既R2
;程序出口R3既经过转化的数据
BCD-BIN:MOV A,BCD
MOV B,#16 这里除以16对吗?是否该除以2
DIV AB
SWAP A 以下指令也不理解
ADD A,B
MOV R3,A
RET
MAIN:
..
..
END

呵呵,你的程序,根本做不到转换。
看下面的吧。
mov r2, #38H ;假设BCD为 38
BCD-BIN:
mov a, r2
mov b, #16
div ab ;A除以16,相当于右移四位,A中剩十位数
mov r3, b ;个位数暂存
mov b, #10
mul ab ;十位数×10
add a, r3 ;加上个位
mov r3, a ;得到二进制形式
ret ;r3中是26H,是38的