全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;-;已知16位二进制整数n以b15b0表示,取值范围为065535。;那么可以写成:; n = b15 b0;把16位数分解成高8位、低8位来写,也是常见的形式:; n = b15b8 * 256 + b7b0;那么,写成下列形式,也就可以理解了:; n = b15b12 * 4096 + b11b0;式中高4位b15b12取值范围为015,代表了4096的个数;;上式可以变形为:; n = b15b12 * 4000 + b15b12 * (100 - 4) + b11b0;用x代表b15b12,有:; n = x * 4000 + x * (100 - 4) + b11b0;即:; n = 4*x (千位) + x (百位) + b11b0 - 4*x;写到这里,就可以看出一点BCD码变换的意思来了。;上式中后面的位:b11b0 - 4*x,如果小于256,那就太简单了,马上就可以去按照常规转换BCD了。;如果数值较大,就要把b11b7看成128的个数y;在百位中加上y、在十位加上3*y、并在b6b0中减去2*y。;那么就有:; n = 4*x (千位) + x (百位) + b11b0 - 4*x; n = 4*x (千位) + (x + y) (百位) + 3*y (十位) + b6b0 - 2*y;由此,就可以明确由高9位b15b7变换出来十进制的各个位的数值,可能大于9,到最后整理一下即可。;剩下的低7位b6b0,已经是单字节数据,变换成BCD码那就十分简单了。;-从最后的表达式中可以看出,高9位变换的计算方法极为简单,只是使用左移、加减等指令即可,基本上不涉及多字节的运算。编程的时候,要充分利用单字节、单周期的指令,使程序的长度和执行时间尽量缩短。做而论道的编程思路已经给出,程序代码还是过一段时间再公布,给大家留下一个发挥的时间。感兴趣的网友可以留言,写出自己编写的程序。51单片机把4位16进制数转成10进制数的方法2位16进制转10进制,用除以10求商跟余数的方法,即可。4位16进制数呢?DIV指令只可以对2位16进制数进行除法运算啊,求高手解答。例如把TH1 TL1的数值转成十进制, 分别存入R4 R3 R2 R1 R0。我要的是汇编的方法,C语言还没学到。悬赏分:30 - 解决时间:2010-2-10 22:47 ;-最佳答案:两个字节的二进制数转换成BCD码,必须编写程序来解决。下面把这段转换程序,写成子程序的结构,便于网友移植。;程序经过仿真调试通过,如下所示:;-; MOV R0, TH1 MOV R1, TL1 CALL HEX2BCD ;调用子程序把R0 R1中的数字,转换成BCD码,送到R2 R3 R4;-下面,把万千百十个位,分别存入R4 R3 R2 R1 R0 MOV A, R4 MOV B, #16 DIV AB ;除以16,目的是分离出高、低四位 MOV R1, A ;存放十位 MOV R0, B ;存放个位; MOV A, R2 MOV R4, A ;存放万位; MOV A, R3 MOV B, #16 DIV AB MOV R3, A MOV R2, B SJMP $ ;到此,完成了题目要求;-;两个字节的二进制数转换成BCD码的程序如下:;功能:16位二进制数变换成为 BCD 码;;入口:R0 R1 中是 16 位二进制数,其中R0中是高 8 位;;出口:R2 R3 R4 中是 BCD 码,其中R2中是万位,R3中是千、百位,R4中是十、个位。HEX2BCD: CLR A MOV R2, A ;先清零 MOV R3, A MOV R4, A MOV R5, #16 ;共转换十六位数LOOP: CLR C MOV A, R1 ;从待转换数的高端移出一位到Cy RLC A MOV R1, A MOV A, R0 RLC A MOV R0, A MOV A, R4 ;送到BCD码的低端 ADDC A, R4 ;带进位加。自身相加,相当于左移一位 DA A ;十进制调整,变成BCD码 MOV R4, A MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年一级建造师执业资格考试(机电工程管理与实务)强化练习题及答案
- 抗生素合理使用共识(2026版)
- 2026年传染病防控护理职业防护考核试卷及答案
- 2025年中国心血管疾病医疗效率报告
- 心率失常患者的心理疏导与护理技巧
- 护理人文教育的理论与实践
- 心理护理沟通技巧:建立医患合作的桥梁
- 左心衰患者呼吸困难护理措施
- 2026linux中级运维工程师面试题及答案
- 2026java全家桶面试题及答案
- 2026年山东名校联盟高三4月核心素养评估语文试题含答案
- 2026中国跨境支付系统合规风险与数字货币融合趋势分析
- 2026年招标采购从业人员《招标采购专业实务(初级)》考试真题(后附答案解析)
- 2026届武汉市高三五调数学试卷及答案
- 小学生环保行动主题班会说课稿
- 武汉市武昌区2026届高三年级五月调研考试语文试卷(含答案)
- 杭州市拱墅区卫生健康局事业单位招聘笔试真题2025
- 《彩绘生命的蓝图》教学课件-2025-2026学年南大版初中心理健康八年级全一册
- 北京市大兴区高米店街道招聘临时辅助用工1人笔试参考题库及答案解析
- 2026年北京市东城区高三二模地理试卷(含答案)
- 基坑边坡监测数据预警处置方案
评论
0/150
提交评论