永发信息网

怎样把比较大的二进制转换成BCD码

答案:1  悬赏:40  手机版
解决时间 2021-11-27 21:03
怎样把比较大的二进制转换成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 A, R3
ADDC A, R3
DA A
MOV R3, A
MOV A, R2
ADDC A, R2
MOV R2, A
DJNZ R5, LOOP ;共转换十六位数
RET
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求个IP地址自动修改器!急!!
迁安到西安市天台三路多少公里
乳胶漆对人体有害吗
100美元上的人头图案是谁?他是美国的第几任
昆山新莱洁净应用材料怎么样?工作强度,待遇
正在加工,预计明天完成.的翻译是:什么意思
桑怿 ① 传(节选) 欧阳修 (怿
夜天子中女主夏莹莹是怎么样的一个人物呢?
0.8比0.36等于多少?
张店三中实验学校在淄博的中学里排第几
金钱树拿一支丫可以插活吗?
锅盔可以做什么好吃的
在职证明最准确的英文翻译是什么?
麦五笔怎么打字
官方网和私人网站有什么不同啊
推荐资讯
一半径为r的半球面均匀带电,电荷面密度为∏,
生大麦芽和炒的大麦芽有什么功效
正误为什么用英语是tf
浪和瑶字组个成语
在山里找到了这粒石头,有价值吗?
win10个性画里面没有颜色选项
谁在苏州名硕电孑上班,我在赶集网上找工作,
欧洲东部和北亚有哪些国家及其各国首都
有没有看过池城演的韩剧秘密的,一天刷完了,
十斤生姜放多少糖多少醋
如何腌制芭乐 芭乐腌制的方法技巧
请问这两个人是来自于哪部动漫,坐等回复,谢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?