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

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:17:15
;编一个BCD码转换二进制码的子程序
; 请各位给个小提示,我自己写

ORG 0000H
BCD-BIN: MOV A, BCD
ANL A, 0FH
MOV R0, A
INC R0
SWAP BCD
MOV A, BCD
ANL A, 0FH

;你的BCD码应该是2位的BCD码吧,这样的话其实就是将2位的十进制数转为二进制数。可以将原BCD码除以16得出高位在寄存器A,低位在寄存器B,则程序如下,
ORG 0000H
BCD EQU R2;程序以R2寄存器存储要转化的BCD码,你也可以用其他的存储单元
LJMP MAIN
;程序功能将BCD码转为二进制码
;程序入口BCD既R2
;程序出口R3既经过转化的数据
;影响R2、R3、A、B
BCD-BIN:MOV A,BCD
MOV B,#16
DIV AB
SWAP A
ADD A,B
MOV R3,A
RET
MAIN:
..
..
END
;另外你的程序
第三行应该是ANL A,#0FH;立即数前面应该加个#
第六行应该是SWAP A,半字节交换指令只能交换累加器A
呵呵,我也刚开始学51汇编程序,一起努力吧!

SWAP BCD

这条指令只有 A 才有的啊 (SWAP A)