压缩型bcd低四位没值是怎么办(压缩性bcd码和非压缩型bcd码均有加减运算调整指令)
1、2压缩BCD码每个数位占用半个字节4个二进制位,其值也用二十进制编码BCD码或数字符的ASCII码的低4位表示符号位也占用装修字节并放在最低数字位之后其值选用四位编码中六种冗余状态中的有关值三;原是十进制的数的不用转就是BCD码,因BCD码的意就是十进制数码压缩的就是在一个八位字节中放二位十进制数,这就要动一下了,把原放在二个字节中的二个单位的数,高位的先改放到字节的高四位中,再和低位的原就;BCD码是表示十进制数的,非压缩BCD码是用8位表示的,其实只用低4位,高4位全为0例如,十进制数36,用非压缩BCD码表示为0000 0011 0000 0110 ,这是两个字节压缩BCD码,就把高4位的0省掉了,用一个字节表示;非压缩BCD码非压缩型BCD码一个字节可存放一个一位十进制数,其中高4位的内容不做规定也有部分书籍要求为0,二者均可,低4位二进制表示该位十进制数非压缩BCD码在汇编中的调整指令为AAA加法的ASCII码调整AAS;知道了编码规则,那么将2位8421bcd码编号的数,还原为十进制数也就方便了函数参数是一个字节那么决定了此8421BCD码是两位码即高四位是一个码值低四位是一个码值,将高四位乘以10加上低四位码值就得到了十进制数。
2、0110非压缩型bcd码一个字节可存放一个一位十进制数,其中高字节为0,低字节的低四位存放个位如5的非压缩型bcd码是0000 0101,必须存放在一个字节中,56的非压缩型bcd码是00000101 00000110,必须存放在一个字中;非压缩的BCD码只有低四位有效,而压缩的BCD码则将高四位也用上了,就是说一个字节有两个BCD码BCD是用0和1表示十进制,如0000表示0,0001表示1,0010表示2,举例子1234表示成0,而压缩的bcd是用00表示0;压缩的BCD码减法的十进制调整指令是DAS,指令格式为DAS隐含对寄存器AL操作 功能为如果AL的低四位09H,或者标志位AF=1,则将AL减06H调整,AF=1如果AL的高四位09H,或者标志位CF=1,则将AL60H调整,CF=1。
3、SUBB A, #30H 将十位数的ASCII码减去0的ACCII码30H,得十位数字 SWAP A 将A的高4位与低4位交换,使A的高4位为压缩BCD码表示的十位数 ANL A,#F0H 将A的低4位清零加入这条指令是为了便于阅读;它只能跟在ADD或ADDC指令之后对累加器A中所获得的8位运算结果进行十进制调整,使A中的内容调整为二位BCD码它判断A的低4位是否大于9和辅助进位标志AC是否为“1”,若两者有一个条件满足,则低4位加6同样,A中的;0000,压缩BCD码高4位放数字‘3’,低4位放数字‘2’,于是压缩BCD码就是0011 0010。
4、入口参数 AL4位压缩BCD码于低4位 BL4位压缩BCD码于低4位 出口参数 AL压缩BCD码形式的乘积 DAM PRO PUSH BX PUSH CX MOV BH,0AH MOV CL,4 XOR AH,AH MUL BL XOR AH,AH DIV BH SHL AL,CL XOR。
5、压缩BCD码,指的就是用四位二进制数表示一位BCD码,用一个字节表示的两位BCD码,称为压缩型BCD码其中高四位存放十位数字,低四位存放个位数字如56的压缩型8421 bcd码是0101 0110;如果听到“原长度10个字节,用压缩BCD码表示为5个字节”也就好理解了比如“7890quot,即可以说用压缩BCD码表示为5个字节;8421BCD码可以对键盘输入的四个数进行编码例如char a,b, c, d 是第四个键盘输入的4个字符数字char 表示8bit整数但是0-9之间的数只需要4个bit都可以了4bit可以表示015之间的数因此,打包压缩后16。
推荐阅读