找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1646|回复: 0
打印 上一主题 下一主题
收起左侧

[资料]51单片机十进制整数与二进制整数转换汇编语言子程序

[复制链接]
跳转到指定楼层
楼主
ID:858964 发表于 2020-12-24 15:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
====================================
【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


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表