汇编程序中将BCD码转换成二进制码的程序如何写,初学者求高手指导

汇编程序中将BCD码转换成二进制码的程序如何写,初学者求高手指导,第1张

嘿嘿

俺来帮你解答

BCD码转换成二进制码的方法:

1

可以按照按权展开公式:

将BCD码按照千位、百位、十位、个早敬位展开计算

(BCD码的千位)×1000+(BCD码的百位)×100+(BCD码的十位)×10+(BCD码的个位)

上述式子之和即为转皮仔换后的二进制数。

呵呵

俺只提供给你一个算法

你可以按照上述算法燃睁汪编写一个BCD码转换成二进制码的子程序。

满意就选满意回答吧

data segment

  bcd1 db 握丛12h  压缩的bcd code

  asc1 db 0,0 神没转换后的ascii code

data ends

code segment

assume cs:code, ds:data

start:

   mov ax,data

   mov ds,ax

   

   mov al,bcd1 (al)=12

   and al,0f0h (al)=10

   mov cl,4

   shr al,cl   (al)=01

   add al,30h  (al)=31h

   mov asc1[0],al

   mov al,bcd1 (al)=12

   and al,0fh  (al)=02

   add al,30h  (al)=32h

   mov asc1[1],al

   mov ah,4ch

   int 21h

code ends

  段瞎樱  end start

void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码

{

u8 i,temp

for(i=0i<leni++)

{

temp=pBuff[i]/10

time[i]=pBuff[i]%10+temp*16

}

}

bcd码就是用二带袭冲进制数来表示常用的十蠢歼进制数。就是用四个位的二进制来表示一个二进制数。一个字节一共有八个位,它就可以表示两个bcd码。比如,0FH等于二禅租进制物15,用一个字节低四位来表示5,高四位来表示1合起来就是15H,不用转换两次的。

扩展资料

例如:

63÷10=6……3

即商是6,余数是

如果将商乘以16再加上余数,就是:6×16+3=99,其16进制数就是63H,即是十进制数63(16进制为3FH)的BCD码为63H。

如果在单片机中,程序这么写:char HEX,BCD;BCD=(HEX/10*16)+(HEX%10)

其中HEX存储十六进制数,BCD中存储的就是其BCD码。

参考资料来源:百度百科-BCD码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8265285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存