注册 登录
编程论坛 汇编论坛

初学者,搞不清楚的问题

狐狸尾巴 发布于 2006-11-08 12:41, 664 次点击

压缩BCD码和非压缩BCD码的区别到底是什么啊?

3 回复
#2
coolday2006-11-08 14:12
压缩BCD码是用4个二进制位表示一个十进制位,也就是说内存中一个字节可以存两个压缩BCD码数
非压缩BCD码是用8个二进制位表示一个十进制位,这时内存中一个字节只可以存一个非压缩BCD码数

如 5D用压缩BCD码表示是:0101;而用非压缩BCD码表示就是: 0000 0101
#3
磐涅2006-11-08 17:20
那 0101 1011 是什么格式?
0000 0101 0000 1011 呢?
#4
wchx2152006-11-10 23:31
0000 0101与0000 1011都是非压缩码
但是0000 1011是错误的,必须转换,因为bcd码最大值不可超过9.
0000 1011应该是11吧!那结果应该是0000 0001 0000 0001 可以如下转换:
假如al=00001011,ah=0
al=al+6
ah=ah+1
al=al&0fh
具体的你可以参照aaa与daa指令。
1