标题: 二进制整数转换为BCD码51汇编语言子程序 [打印本页]

作者: Kxuan163    时间: 2020-12-26 14:25
标题: 二进制整数转换为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           ;;十位数高低半字节互换
      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







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1