51单⽚机⼆进制转bcd码c语⾔,⼆进制整数转换为BCD码51汇
编语⾔⼦程序
【单字节⼆进制整数转换为BCD码⼦程序】
;;⼊⼝:(A)= ⼆进制整数,
;;出⼝:(R0)= 存放BCD码的RAM⾸址指针。
BINtoBCD1:
MOV        B,        #100
DIV  AB                ;;A←百倍数, B←余数
MOV  @R0        A    ;;RAM←百位数
INC  R0          ;;RAM指针加1
MOV        A,    #10
XCH  A,        B    ;;A←余数, B←#10
DIV  AB          ;;A←⼗位数,B←个位数
SWAP  A          ;;⼗位数⾼低半字节互换
c语言中文网汇编语言ADD  A,        B    ;;A←合成得BCD码
MOV  R0,        A    ;;RAM←转换结果
【多个字节⼆进制整数转换为BCD码⼦程序】
;;⼊⼝:BIN_P是⼆进制数末字节地址指针,N是待转换的字节数,
;;出⼝:BCD_P是BCD码个位数地址指针。
BINtoBCDn:
MOV  R1,  BCD_P
MOV  R2,  N
INC  R2
CLR  A
BB0:
MOV        @R1,        A
INC        R1
DJNZ  R2,        BB0
MOV  A,        N
MOV  B,        #8
MUL  AB
MOV  R3,        A
BB3:
MOV        R0,        BIN_P
ACALL BINtoBCD1        ;;调⽤转换单字节转换⼦程序MOV  R2,        N
CLR  C
BB1:
MOV        A,        @R0
RLC  A
MOV  @R0,        A
INC        R0
DJNZ  R2,        BB1
MOV        R2,        N
INC        R2
MOV        R1,        BCD_P
BB2:
MOV        A,        @R1
ADDC        A,        @R1
DA        A
MOV        @R1,        A
INC  R1
DJNZ        R2,        BB2
DJNZ  R3,        BB3
RET

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。