51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
多字节十进制整数(压缩BCD码)转换为二进制整数子程序
作者:佚名  发布时间:2009/11/20  阅读次数:3254  字体大小: 【】 【】【

;多字节十进制整数(压缩BCD码)转换为二进制整数子程序NIDTB
;入口:R0指向多字节十进制整数高位,R1指向结果多字节二进制整数高位,R7=n
;使用A,B,R0~R7,影响CY
NIDTB:                    MOV          A,R1
                                MOV          R6,A
                                MOV          A,R7
                                MOV          R3,A
                                CLR          A
NDB0:                      MOV          @R1,A
                                INC          R1
                                DJNZ        R3,NDB0
                                MOV          A,R7
                                MOV          R3,A
NDB3:                      CALL      NDB1
                                MOV          A,@R0
                                ANL          A,#0F0H
                                SWAP        A
                                CALL      NDB2
                                CALL      NDB1
                                MOV          A,@R0
                                ANL          A,#0FH
                                CALL      NDB2
                                INC          R0
                                DJNZ        R3,NDB3
                                RET
NDB1:                      MOV          A,R7
                                MOV          R4,A
                                MOV          A,R6
                                ADD          A,R7
                                DEC          A
                                MOV          R1,A
                                CLR          C
                                MOV          R2,#0
NDB4:                      MOV          A,@R1
                                MOV          B,#10
                                PUSH        PSW
                                MUL          AB
                                POP          PSW
                                ADDC        A,R2
                                MOV          @R1,A
                                MOV          R2,B
                                DEC          R1
                                DJNZ        R4,NDB4
                                RET
NDB2:                      MOV          R5,A
                                MOV          A,R6
                                ADD          A,R7
                                DEC          A
                                MOV          R1,A
                                MOV          A,R7
                                MOV          R4,A
                                MOV          A,R5
                                ADD          A,@R1
                                MOV          @R1,A
                                DEC          R1
                                DJNZ        R4,NDB5
                                RET
NDB5:                      MOV          A,@R1
                                ADDC        A,#0
                                MOV          @R1,A
                                DEC          R1
                                DJNZ        R4,NDB5
                                RET

;单字节BCD码转换成压缩BCD码子程序BCDC
;入口:R0指向2n个单字节高位,R1指向n个双字节高位,R3=n
;使用A,R0,R1,R3
BCDC:                      MOV          A,@R0
                                SWAP        A
                                INC          R0
                                ORL          A,@R0
                                MOV          @R1,A
                                INC          R0
                                INC          R1
                                DJNZ        R3,BCDC
                                RET
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号