标题: [资料]51单片机十进制整数与二进制整数转换汇编语言子程序 [打印本页]

作者: Kxuan163    时间: 2020-12-24 15:30
标题: [资料]51单片机十进制整数与二进制整数转换汇编语言子程序
====================================
【4位十进制整数转换为二进制整数子程序】
入口:十进制整数千位数RAM址存于R0,百位数、十位数、个位数RAM址依次加1;
返回值:转换所得二进制整数存于R3(高字节)R4(低字节)。
DtoB: MOV  R2,  #4        ;;R2←递减的循环次数初值
      MOV  A,  @R0       
      MOV  R4, A       ;;R4←千位数
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
====================================
【双字节二进制整数转换为十进制整数BCD码子程序】
入口:二进制整数高字节存于R2,低字节存于R3
返回值:转换所得BCD码由高位至低位依次存于R4,R5,R6
BtoD:  MOV  R7,  #16    ;;R7←递减的循环次数初值
       MOV  R4,  #0     ;;结果寄存器清零
       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.51hei.com/bbs/) Powered by Discuz! X3.1