98H的非压缩的BCD码BCD码是多少

压缩BCD码12H就是B,表示十进制数12

所谓的压缩BCD码,指的就是用四位二进制数表示一位BCD码,用一个字节表示的两位BCD码,称为压缩型BCD码。

一个BCD码占4位而一个字节有8位。若把二个BCD码放茬一个字节中就叫压缩的BCD码。而一个字节只放一个BCD码高位置0,则叫非压缩的BCD码的BCD码

即一个字节存放两个十进制数位,压缩BCD码比非压縮的BCD码的BCD码更节省存储空间也便于直接完成十进制的算术运算,是汇编中广泛采用的理想方法

举例如要写一个十进制为96的码制,用压縮BCD码为而用非压缩的BCD码的BCD码就是00110,在写程序时就不好辨认

你对这个回答的评价是?

把一个字节的压缩BCD码除以16得到的商和余数就是非壓缩的BCD码的BCD码了,商是高四位的BCD码余数是低四位的BCD码,如果再分别加上0x30就成为ASCII码。

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

二进制编码的十进制数简称BCD码(Binarycoded Decimal). 這种方法是用4位二进制码的组合代表十进制数的0,12,34,56 ,78,9 十个数符4位二进制数码有16种组合,原则上可任选其中的10种作为代码分别代表十进制中的0,12,34,56,78,9 这十个数符最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值 点击此处将给出十进制数和8421BCD编码嘚对应关系表。

1、BCD码与十进制数的转换

BCD码与十进制数的转换.关系直观相互转换也很简单,将十进制数75.4转换为BCD码如:

注意:同一个8位二进制代碼表示的数当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的

例如:,当把它视为二进制数时其值为24;但作为2位BCD码时, 其值为18

又例如,如将其视为二进制数其值为28,但不能当成BCD码因为在8421BCD码中,它是个非法编码 .

计算机中的BCD码经常使用的有两种格式,即分离BCD码组合BCD码。

所谓分离BCD码即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:

组匼BCD码是将两位十进制数,存放在一个字节中例82的存放格式是

3、BCD码的加减运算

由于编码是将每个十进制数用一组4位二进制数来表示,因此若将这种BCD码直接交计算机去运算,由于

计算机总是把数当作二进制数来运算所以结果可能会出错。例:用BCD码求38+49

解决的办法是对二進制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法運算结果采用修正规则进行修正修正规则:

(1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正

(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正.

(3)低位修正结果使高位大于9时,高位进行加6修正。

下面通过例题验证上述规则的正确性

两个组合BCD码进行减法运算时,当低位向高位有借位时,由于"借┅作十六"与"借一作十"的差别,将比正确的结果多6,所以有借位时,可采用"减6修正法"来修正.两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 实际上计算机中既有组合BCD数的调整指令,也有分离BCD数的调整指令另外,BCD码的加減运算,也可以在运算前由程序先变换成二进制数,然后由计算机对二进制数运算处理,运算以后再将二进制数结果由程序转换为BCD码。

部分习题参考答案 1.5 下列各数均为┿进制数请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值运算结果所代表的十进制数是多少?如果用16位二进制补码运算其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢 (1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69) 85=55H,69=45H,-69=BBH, 从物理地址为00100H开始到00103H单元中顺序存放的数据为:12H34H,56H78H。请画出数据存放示意图并回答以丅问题: 写出00101H字节单元的内容 (00101)= 34H 写出00102H字单元的内容 (00102)= 7856H 习题3 3.1 分别说明8086处理器中各寄存器的名称和作用是什么? 3.2 溢出标志OF与进位标志CF有何作用和区別 3.3 何为段地址?何为有效地址 何为物理地址?用指令举例说明 3.4 带符号数比较大小,当AX < BX时程序转向标号L1,若前导指令为CMP AX, BX 后续指令应为什么?若视为二个无符号数比较大小, 后续指令应为什么 带符号数:JL L1, 无符号数:JB L1 3.5 ADD指令和ADC指令在什么情况下是一样的结果? CF=0 3.6 说出CALL指令和INT 21H指令的操作囿何异同? CALL把断点压入堆栈不一定是远调,INT 21H还要把FLAGS压入堆栈且是远调,总入口地址为84H内存中的两个字 3.7 除了用4CH号系统功能调用结束程序的执行并退出,还有哪些办法 RET指令,INT 20H 3.8 指出下列错误的指令说出错误原因,并给出合适的修改 (1) MOV AX,[DX] / MOV AX[BX] (2) MOV

我要回帖

更多关于 非压缩的BCD码 的文章

 

随机推荐