网站大量收购闲置独家精品文档,联系QQ:2885784924

BCD码和DA调整指令教程.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BCD码和DA调整指令教程

BCD 码和非压缩BCD码;1、BCD码与十进制数的转换;2、BCD码的格式;3、BCD码的加减运算 ; (1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。 (2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正. (3)低位修正结果使高位大于9时,高位进行加6修正。 下面通过例题验证上述规则的正确性。 ;用BCD码求35+21 BCD码求25+37 用BCD码求38+49 用BCD码求42+95 用BCD码求91+83 用BCD码求94+7 用BCD码求76+45 两个组合BCD码进行减法运算时,当低位向高位有借位时,由于借一作十六与借一作十的差别,将比正确的结果多6,所以有借位时,可采用减6修正法来修正.两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 实际上,计算机中既有组合BCD数的调整指令,也有分离BCD数的调整指令。另外,BCD码的加减运算,也可以在运算前由程序先变换成二进制数,然后由计算机对二进制数运算处理,运算以后再将二进制数结果由程序转换为BCD码; 压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例表示十进制数8.;二、DA指令的用法;比如,现在我想执行12D+39D也就是两个十进制数相加这样一个加法(有时候程序处理的需要,数据在单片机中是以BCD码的形式存储的,也就是12H和39H(十六进制),但我们可以人为将它们看为12D和39D(十进制),而且还希望相加以后的结果为51H,也就是说符合十进制运算规则12+39=51,而不是4BH的结果),但这样的十进制加法运算在单片机中是不能够直接实现的。因为单片机只能够执行二进制加法指令,也就是所有的运算都按照二进制中的规则进行! ;于是就出现了DA调整指令! 现在12H+39H,将12H放于A中,执行?ADD?A,#39H指令,则结果为4BH,这不是我们希望的51H的数据形式!!这时执行DA?A?指令后,就会将A中的数据调整为51H(具体调整过程和原理你可以详细看书,如果单片机书中讲的不详细,那么微机原理中一定说的非常详细),而我们按照BCD码规则就将其看为51D,符合我们的要求! 也就是说加数和被加数都是BCD码的形式,最大也只可能是99H,也就是我们十进制数中的99,只有这样才会有实际的意义!;  当A=#?9AH的时候的情况是不会存在的,严格的说是没有意义的! 而且DA ?A指令只用于十进制BCD码加法指令以后,否则是没有实际意义的!   计算机中只有2进制,不存在16进制或是10进制。 BCD码的规则是用4位2进制数的低10位数(0000~1001)来一一对应0~9,大于1001的值不使用。 按照这个规则, ?+?==?08D?+?03D?==?11D?==。 而实际上在二进制运算中?+?==?,其大小超过了1001 DA指令的作用就是在用ADD指令(或ADDC)得到?后,将其转换以符合BCD码的规则。

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档