压缩BCD码是用四位二进制数表示一位BCD码,用一个字节表示的两位BCD码,即一个字节存放两个十进制数位,想到压缩BCD码更节省存储空间。
非压缩BCD码:非压缩型BCD码一个字节可存放一个一位十进制数,其中高4位逗迹的内容不做规定(也有部分书籍要求为0,二者均可),低4位二进制表示该位碰漏十进制数。
非压缩BCD码在汇编笑指烂中的调整指令为AAA(加法的ASCII码调整)、AAS(减法的ASCII码调整)、AAM(乘法的ASCII码调整)、AAD(除法的ASCII码调整)。
扩展资料:
调试时使用的数据:
ORG 0000H
MOV 20H, #12H 假设被加数NA是563412
MOV 21H, #34H
MOV 22H, #56H
MOV 30H, #77H 假设加数NB是998877
MOV 31H, #88H
MOV 32H, #99H
LCALL ADD3B 调用3字节加法子程序
SJMP $ 相加结束,暂停,此时可以观察到和的数值:1562289
参考资料来源:百度百科-压缩BCD码
参考资料来源:百度百科-非压缩BCD码
压缩BCD码指二进制编码的十进制
压缩BCD码指一个字节8位存储2位BCD码。比如32用8421BCD码表示如下:非压缩BCD码表示:00000011 00000010;压缩BCD码表示:0011 0010;使用BCD码表示10进位制数字比较好理解,且占用空间较小,在用数字表示的数据方面得到广泛应用。如果听到“原长度10个字节,用压缩BCD码表示为5个字节”也就好理解了。比如“1234567890",即可以说用压缩腔或码BCD码表示为5个字节。
扩展资料:
压缩BCD码的应用:BCD计数器也称为十进位计数器或模10计数器,它广泛地运用于各种电子设备中。特别是在测试仪表以及另外那些具有十进制输入与/或输出的设备中.运用得更普遍。数字计数器.万用表以及其它数字仪表,就是一类例子;数字电子表是另外一类例子。这与一个标准四位二进制计数器的前十个状团春态相同。不过,当计数器伍哪计9时,它循环回到0,然后它又重新开始递增计数。
参考资料来源:百度百科-压缩BCD码
编程实现两个一字节压缩型BCD码的减法,
设被减数地址在R0中,减数地址在R1中,差仍存于被减数地址单元中。
注意是单片机中啊。
------------------
一字节压缩的 BCD 码相减。
如:22-55 =-33。
注意:-33 的 BCD 补码是 67H。
MCS-51 汇编语言程序如下:
MOV R2,#22H;被减数
MOV R3,#55H;减数
CLR C
MOV A,R2
SUBB A,R3 ;先减一次团并明,取得正负号
MOV F0,C ;暂时保存
;---------下面正式相减
MOV A,#9AH
SUBB A,R3 ;求减数的 BCD 补码=45H
ADD A,R2 ;加上被减数 22H,得 67H
DA A ;十进塌告制调整,还是 67H
MOV R4,A ;保存差
MOV C,F0 ;用 Cy 当做“蔽搜符号标志位”
--------------
如果运算数据,是:55-22 = 33,
执行本程序,将有:C = 0,R4 = 33。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)