標(biāo)題: [資料]51單片機十進制整數(shù)與二進制整數(shù)轉(zhuǎn)換匯編語言子程序 [打印本頁]

作者: Kxuan163    時間: 2020-12-24 15:30
標(biāo)題: [資料]51單片機十進制整數(shù)與二進制整數(shù)轉(zhuǎn)換匯編語言子程序
====================================
【4位十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)子程序】
入口:十進制整數(shù)千位數(shù)RAM址存于R0,百位數(shù)、十位數(shù)、個位數(shù)RAM址依次加1;
返回值:轉(zhuǎn)換所得二進制整數(shù)存于R3(高字節(jié))R4(低字節(jié))。
DtoB: MOV  R2,  #4        ;;R2←遞減的循環(huán)次數(shù)初值
      MOV  A,  @R0       
      MOV  R4, A       ;;R4←千位數(shù)
LP1 : MOV  A,   R4      ;;R3R4←(R3)(R4)*10
      MOV  B,   #10   
      MUL  AB
      MOV  R4,  A
      MOV  B,   #10
      XCH  A,   B
      XCH  A,   R3
      MUL  AB
      ADD  A,   R3
      XCH  A,   R4
      INC  R0           ;;RAM指針加1  
      ADD  A,  @R0     ;;R3R4←(R3)(R4)+((R0))
      XCH  A,   R4
      ADDC A,   #0
      MOV  R3,  A
      DJNZ R2,  LP1
      RET
====================================
【雙字節(jié)二進制整數(shù)轉(zhuǎn)換為十進制整數(shù)BCD碼子程序】
入口:二進制整數(shù)高字節(jié)存于R2,低字節(jié)存于R3
返回值:轉(zhuǎn)換所得BCD碼由高位至低位依次存于R4,R5,R6
BtoD:  MOV  R7,  #16    ;;R7←遞減的循環(huán)次數(shù)初值
       MOV  R4,  #0     ;;結(jié)果寄存器清零
       MOV  R5,  #0
       MOV  R6, #0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LP2:   CLR  C         
       MOV  A,   R3
       RLC  A           
       MOV  R3, A      
       MOV  A,   R2
       RLC  A
       MOV  R2,  A     
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       MOV  A,   R6   
       ADDC A,   R6
       DA   A           
       MOV  R6, A     
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       MOV  R5,  A
       ADDC A,   R5
       DA
       MOV  R5,  A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       MOV  R4,  A
       ADDC A,   R4
       DA
       MOV  R4,  A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       DJNZ R7,  LP2
       RET







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1