您现在的位置: 主页 > MCU > 单片机技术应用 > BCD 数转换为二进制数(义隆单片机) -
本文所属标签:
为本文创立个标签吧:

BCD 数转换为二进制数(义隆单片机) -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
两字节压缩BCD 码转换为两字节二进制数。算法如下:BCD 码abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,将各位BCD 码分离出之后,即可根据此式转换为二进制数。涉及到乘法运算和多字节加法运算。0X20,0X

两字节压缩BCD 码转换为两字节二进制数。算法如下:

本文引用地址: http://www.21ic.com/app/mcu/201806/761641.htm

BCD 码abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,将各位BCD 码分离出之后,即可根据此式转换为二进制

数。涉及到乘法运算和多字节加法运算。

0X20,0X21 中为BCD 码,0X21 高4 位为最高位。转换结果放在0X30,0X31 中。

main: MOV a,@0x79

MOV 0x20,a

MOV a,@0x54

MOV 0x21,a ;赋值

MOV a,0x20

and a,@0x0f

MOV 0x22,a

swapa 0x20

and a,@0x0f

MOV 0x23,a

MOV a,0x21

and a,@0x0f

MOV 0x24,a

swapa 0x21

and a,@0x0f

MOV 0x25,a ;BCD 码展开后存于0X22,0X23,0X24,0X25

MOV a,0x25, ;0X25 为最高位

MOV 0x30,a

MOV a,@0x0 ;多字节加法高位为0

MOV 0x31,a

MOV a,0x24

MOV 0x32,a

call a_b ;调子程

MOV a,0x23

MOV 0x32,a

call a_b

MOV a,0x22

MOV 0x32,a

call a_b

self: jmp self

a_b:

MOV a,@0x0 ;0X34,0X35 存储中间结果

MOV 0x34,a

MOV 0x35,a

MOV a,@0x0a ;实现乘10

MOV 0x33,a

a1: MOV a,0x35 ;两字节二进制加法,在本例中高字节肯定无进位

add a,0x31

MOV 0x35,a

MOV a,0x34

add a,0x30

MOV 0x34,a

jbc 0x03,0

inc 0x35

djz 0x33

jmp a1

MOV a,0x32

add 0x34,a

jbc 0x03,0

inc 0x35

MOV a,0x34

MOV 0x30,a

MOV a,0x35

MOV 0x31,a

ret

eop




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > BCD 数转换为二进制数(义隆单片机) -
 

"BCD 数转换为二进制数(义隆单片机) -"的相关文章

网站地图

围观()