微机原理与接口技术第4章.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课堂小练习 设数据段BUF单元开始有三个字节数据,请编一程序段实现:找出其中机器数的最大数送NUM单元。 如:69的BCD码数应写成69H 指令中: 即:MOV AL , 69H ;则AL=0110,1001 或:MOV AL ,09H ;则AL MOV AH ,06H ;则AH若:MOV AL , 69 ;则AL=0100,0101 内存数据定义: 即:BUF DB 69H 或:BUF DB 09H,06H 若:BUF DB 69 则错 ★ BCD码数的加减运算 ∵BCD码数是用4位二进数代表1位十进数 ∴其运算法则应是:“逢十进一,减一当十” 假设:N1=(0110 , 1001)BCD N2=(0000 , 1001)BCD 则:N1+N2=69+09=78 即结果应当等于(0111 , 1000)BCD ★ 如何实现BCD码数的加法呢? 指令系统中没有实现BCD码数加法的指令,只能借用ADD、ADC指令。但是ADD、ADC指令默认操作数是二进数,其运算法则是“逢二进一”,而BCD码数加法要求按“逢十进一”运算。 0 1 1 0 , 1 0 0 1 ←BCD码数N1 ADD) 0 0 0 0 , 1 0 0 1 ←BCD码数N2 0 1 1 1 , 0 0 1 0 ←这是二进制的和数 +) 0 0 0 0 , 0 1 1 0 ←加06H修正 事实上,N1和N2可以是任意的BCD码数,借用ADD、ADC运算后必须具体分析运算结果,然后根据不同的情况选择加06H修正,或是加60H修正,或是加66H修正。 因此借用ADD、ADC指令进行BCD码数的加法还必须对结果进行修正,修正后的结果才是BCD码数的和数。 举例如下: 0 1 1 1 , 1 0 0 0 ←得到正确BCD码和数 如果对于每一次BCD码数的加法都要由程序员来判断结果的话,这太麻烦了,因此指令系统中设计了一条“组合BCD码数加法调整指令??DAA”由硬件进行分析,再对结果进行调整。 上例编程时只需要按以下方式设计程序即可 MOV AL ,69H ADD AL ,09H DAA (2) BCD码数的加法及其调整规律(见下页表) 笔算 CPU运算 加法调整 43 + 55 98 0100,0011 ADD) 0101,0101 1001,1000 C标=0,A标=0,高低四位均没有出现非法BCD码,结果正确,不修正 39 + 49 88 0011,1001 ADD) 0100,1001 1000,0010 +) 0110 1000,1000 低四位有进位,即A标=1,对运算结果加06H修正 63 + 54 117 0110,0011 ADD) 0101,0100 1011,0111 +) 0110,0000 1,0001,0111 高四位出现非法BCD码数,对运算结果加60H修正 87 + 86 173 1000,0111 ADD) 1000,0110 1,0000,1101 +) 0110,0110 1,0111,0011 因为C标=1,低四位出现非法BCD码,对运算结果加66H修正 笔算 CPU运算 加法调整 (3) BCD码调整指令 ① 组合BCD码加法调整:DAA 功能:默认操作对象为AL,并且根据具体情况对AL中的高/低4位进行修正。 应用:紧跟在以AL为目标寄存器的ADD/ADC之后,但AL中必须是组合BCD码数之和。 ② 组合BCD码减法调整:DAS ③ 未组合BCD码加法调整:AAA ④ 未组合BCD码减法调整:AAS ⑤ 未组合BCD码乘法调整:AAM ⑥ 未组合BCD码除法调整:AAD 例:计算1234+5678=? 要求CPU完成的操作:加法

文档评论(0)

企业资源 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档