找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于4位BCD码转二进制的问题

[复制链接]
跳转到指定楼层
楼主
ID:450037 发表于 2019-3-3 08:33 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10黑币
如图为什么要先乘以10,
XCH  A,R3      R3此时是零  零与高字节交换
MUL  AB           0乘以10是不是零
ADD  A,R3       R3加零是不是
XCH  A,R4       高字节与低字节交换
INC  R0               指向,,a2什么作用

Screenshot_20190303-082155.jpg (170.88 KB, 下载次数: 49)

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

使用道具 举报

沙发
ID:123289 发表于 2019-3-3 20:25 | 只看该作者
1、先取的是千位,3次循环,每次*10,合计*1000
2、次取的是百位,2次循环,每次*10,合计*100
3、再次取的是十位,1次循环,每次*10,合计*10
每次都将合计的结果放在R4R3中,最后加a0,不就OK了吗。
回复

使用道具 举报

板凳
ID:450037 发表于 2019-3-4 13:57 来自手机 | 只看该作者
yzwzfyz 发表于 2019-3-3 20:25
1、先取的是千位,3次循环,每次*10,合计*1000
2、次取的是百位,2次循环,每次*10,合计*100
3、再次取 ...

还是不懂,取出来的不是BCD码吗?它乘以10是什么啊,求指导一下。
回复

使用道具 举报

地板
ID:18297 发表于 2019-3-5 08:58 | 只看该作者
1、4位的BCD码转二进制数计算公式:
   a3,a2,a1,a0四位BCD码,转成的二进制数=a3*1000+a2*100+a1*10+a0
2、这段程序就是完成这个转换的过程的。
3、怎么完成这个呢?
   分成3个步骤:
NO1:   (a3)*10+a2
NO2:   ((a3)*10+a2)*10+a1
NO3:   (((a3)*10+a2)*10+a1)*10+a0
      =a3*1000+a2*100+a1*10+a0
要进过3个循环。每个循环都是16位数乘以10(8位数),再加上另外一个数。中间需要考虑进位。
怎么完成这个循环呢?
十六位数AB(A代表高8位,B代表低8位)乘以10(8位数)再加上另外一个数D的计算方法:
高位字节=A*10+(B*10+D)的进位(有进位加1,无进位加0)
低位字节=B*10+D
4、在第一个循环中,要将A3看出16位数,高位字节是0,所以R3=0.
回复

使用道具 举报

5#
ID:450037 发表于 2019-3-6 15:54 来自手机 | 只看该作者
zjjhtony 发表于 2019-3-5 08:58
1、4位的BCD码转二进制数计算公式:
   a3,a2,a1,a0四位BCD码,转成的二进制数=a3*1000+a2*100+a1*10+a0
...

我想看的就是你这样的解答,真棒
回复

使用道具 举报

6#
ID:450037 发表于 2019-3-6 16:16 来自手机 | 只看该作者
zjjhtony 发表于 2019-3-5 08:58
1、4位的BCD码转二进制数计算公式:
   a3,a2,a1,a0四位BCD码,转成的二进制数=a3*1000+a2*100+a1*10+a0
...

还是不懂啊,比如  a3=0101   a2=0100   a1=1000  a0=1001,求大侠解读这个计算过程
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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