找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2039|回复: 0
收起左侧

二进制整数转换为BCD码51汇编语言子程序

[复制链接]
ID:858964 发表于 2020-12-26 14:25 | 显示全部楼层 |阅读模式
【单字节二进制整数转换为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


评分

参与人数 2黑币 +62 收起 理由
gzh325716 + 12 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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