您的位置:首页单片机义隆单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

二进制数转换为BCD 码

[日期:2008-06-17 ] [来源:net 作者:佚名] [字体: (投递新闻)

本例为单字节二进制数(0X20)转换为非压缩BCD 码,存在0X25,0X24,0X23 中,0X25 为百位,0X23 为个位。

main: mov a,@0xa4 ;赋值

mov 0x20,a

mov 0x21,a

mov 0x22,a

mov a,@0x0 ;0x23,0x24,0x25 单元清0

mov 0x23,a

mov 0x24,a

mov 0x25,a

mov a,@0x64 ;对100 的个数计数

mov 0x26,a

mov a,@0x25 ;百位存在0x25 中

mov 0x04,a

call a0 ;调计数子程

mov a,@0x0a ;对10 的个数计数

mov 0x26,a

dec 0x04 ;个位存在0x24 中

call a0

mov a,0x22 ;除去百位,十位,余下的即个位,存入0x23

mov 0x23,a

self: jmp self

a0: ;计数子程

mov a,0x26

sub 0x22,a

jbs 0x03,2

jmp a1

inc 0x00 ;无余数则对应位加1

mov a,@0x0 ;0x21 与0x22 在返回时应保持相同

mov 0x21,a

ret

a1: jbs 0x03,0 ;小于则跳a2

jmp a2

inc 0x00 ;大于则计数值加1

mov a,0x22

mov 0x21,a ;将0x22 保存到0x21 中

jmp a0 ;跳回a0 继续计数

a2: mov a,0x21 ;0x21 中保存的减之前的数据,此时恢复到0x22

mov 0x22,a

ret

eop

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐