標(biāo)題: 二進(jìn)制整數(shù)轉(zhuǎn)換為BCD碼51匯編語言子程序 [打印本頁]

作者: Kxuan163    時間: 2020-12-26 14:25
標(biāo)題: 二進(jìn)制整數(shù)轉(zhuǎn)換為BCD碼51匯編語言子程序
【單字節(jié)二進(jìn)制整數(shù)轉(zhuǎn)換為BCD碼子程序】
;;入口:(A)= 二進(jìn)制整數(shù),
;;出口:(R0)= 存放BCD碼的RAM首址指針。
BINtoBCD1:
        MOV        B,        #100
        DIV   AB                ;;A←百倍數(shù), B←余數(shù)
      MOV   @R0        A     ;;RAM←百位數(shù)
      INC   R0          ;;RAM指針加1
      MOV        A,    #10
      XCH   A,        B     ;;A←余數(shù), B←#10
      DIV   AB          ;;A←十位數(shù),B←個位數(shù)
      SWAP  A           ;;十位數(shù)高低半字節(jié)互換
      ADD   A,        B     ;;A←合成得BCD碼
      MOV   R0,        A     ;;RAM←轉(zhuǎn)換結(jié)果


【多個字節(jié)二進(jìn)制整數(shù)轉(zhuǎn)換為BCD碼子程序】
;;入口:BIN_P是二進(jìn)制數(shù)末字節(jié)地址指針,N是待轉(zhuǎn)換的字節(jié)數(shù),
;;出口:BCD_P是BCD碼個位數(shù)地址指針。         
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        ;;調(diào)用轉(zhuǎn)換單字節(jié)轉(zhuǎn)換子程序
      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.torrancerestoration.com/bbs/) Powered by Discuz! X3.1