单片机汇编进制转换问题-十六进制-十进制-BCD.docx

单片机汇编进制转换问题-十六进制-十进制-BCD.docx

ID:55168922

大小:10.32 KB

页数:4页

时间:2020-04-30

单片机汇编进制转换问题-十六进制-十进制-BCD.docx_第1页
单片机汇编进制转换问题-十六进制-十进制-BCD.docx_第2页
单片机汇编进制转换问题-十六进制-十进制-BCD.docx_第3页
单片机汇编进制转换问题-十六进制-十进制-BCD.docx_第4页
资源描述:

《单片机汇编进制转换问题-十六进制-十进制-BCD.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、此属本人原创请尊重知识产权:多字节十六进制转换为十进制(多字节十六进制除十运算)MOV40H,#0FFH;三字节数据的低位存放地址MOV41H,#0FFHMOV42H,#0FFH;三字节数据的高位存放地址MOVR0,#50H;转换后十进制数存放的首地址(个位)MOVR2,#7;取十进制的位数减一(如FFFFFFH转换为十进制是,八位减一就是7)CFYS:MOVR1,#40H;给高字节地址MOVB,#00H;避免影响下一轮运算SCCF:MOVA,@R1ANLA,#0F0H;屏蔽低四位ORLA,B;合并给A(被除数)SWAPAMOVB,#10DIVA

2、BSWAPA;高位在AXCHA,@R1;商高位在ANLA,#0FH;屏蔽高四位XCHA,BSWAPAORLA,B;合并给A(被除数)MOVB,#10DIVABORLA,@R1;合并给A(被除数)MOV@R1,AINCR1CJNER1,#43H,SCCF;是否完成一次除十运算MOV@R0,BINCR0DJNZR2,CFYS;是否完成全部运算MOV@R0,A(以上程序编写于2014/10/03上午)BCD码和十六进制的转换大家都知道汇编语言里把十六进制转换为BCD码用DA指令,但是没有哪条指令能把BCD码转换为16进制,我曾经也很为此困惑,但最终我解

3、决了此问题,看程序!假如R0里储存的是37分钟的BCD码,那么R0里的数是37H,要把它转换成37的十六进制25H存入R1中。我们现实的算法是37/16=25H就可以得出结果,但是机器没那么聪明,因为37H是十六进制。汇编程序解决的方法如下:MOVA,R0;ANLA,#0FH;屏蔽高4位(即屏蔽分钟的十位)MOVR2,A;把个位的值给R2MOVA,R0;ANLA,#0F0H;屏蔽低4位(即屏蔽分钟的个位)SWAPA;高低字节互换MOVB,#10;给B赋值(也可以赋0AH)MULAB;A乘B得出十位的十六进制值ADDA,R2;十位的值加上个位的值M

4、OVR1,A;把转换好的十六进制值给R1(以上程序编写于2014/09/13中午)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。