微机原理教案(9月27日).doc

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

第 课时 /wlkj/wykj/ch3/ch3_3_2_5.htm /modules.php?op=modloadname=Newsfile=articlesid=84 /wlkj/new_page_main.htm 栏目 内容 课题 第章 第节 教学目的 1、了解; 2、掌握; 3、掌握。 教学重点 教学难点 教学方法 多媒体课件 复习提问 1、? 2、? 【讲授新课】 BCD码运算调整指令 要点: 用二进制运算规则来进行BCD码运算(即十进制运算)需要进行调整才能得到正确的结果。 BCD码的加、减、乘、除运算均有相应的调整指令。它们一般不单独使用,而是与加、减、乘、除指令配合使用。 BCD码运算调整指令均采用隐含寻址方式,隐含的操作数是累加器AL(和AH)。BCD码运算调整指令包括加法调整AAA和DAA、减法调整AAS和DAS、乘法调整AAM、除法调整AAD。下表是BCD码调整指令的概貌。   压缩BCD码 非压缩BCD码 加 ADD/ADC DAA AAA 减 SUB/SBB DAS AAS 乘 MUL - AAM 除 DIV - AAD (在除法指令前使用) BCD码的加法运算调整指令AAA/DAA BCD码加法调整指令包括非压缩的BCD码加法调整指令和压缩的BCD码加法调整指令两种。 (1)非压缩BCD码的加法调整指令AAA 【格式】 AAA 【操作】 如果AL的低4位>9∨AF=1,则: ① AL←(AL)+6,AH←(AH)+1,AF←1 ② AL←((AL)∧0FH) ③ CF←AF 否则AL←(AL)∧0FH 调整原理BCD码计算8+9,见下式 0000 1000 + 0000 1001 0001 0001 = (11)BCD 结果应为17,而实际运算结果为11,这是什么原因呢? 仔细分析一下,我们可以发现计算机在二进制运算过程中,如遇到低4位向高4位产生进位时(此时AF=1)是按逢十六进一的规则,但BCD码运算要求逢十进一。因此只要产生进位,BCD码的个位(低4位)就会丢失6,因此需要进行加6调正。如对上例的结果用AAA指令进行加6调整: 0001 0001 11 + 0000 0110 6 0001 0111 17 ∧ 0000 1111 0000 0111 AH←1,CF←1 调整的结果AH=1,AL=7,CF=1。即BCD运算结果为17,个位向十位有进位。 实际上当低4位的结果>9(即在A~F之间)时,也应进行加6调正。其原因是逢十没有产生进位,故需要用加6的方法强行产生进位。 【功能】 对两个非压缩BCD数的和(在AL中)进行调整,产生正确的非压缩BCD码。 【例1】用十进制计算9+4 MOV AL,09H ;AL←9 MOV BL,04H ;BL←4 ADD AL,BL ;AL=(AL)+(BL)=0DH AAA ;AL=(0DH+06H)∧0FH=03H;AH←AH+1;CF←1 【标志位】 只影响AF和CF,其余标志无定义。 【说明】 AAA指令应紧跟在加法指令ADD或ADC指令之后使用,且ADD和ADC指令的执行结果必须放在AL中。 【例2】有两个ASCII码表示的十进制数,“2658”和“3619”,求二者之和。 STRING1 DB 2658 ;被加数 STRING2 DB 3619 ;加数 SUM DB 4 DUP(?) ;预留4个字节,用于存放结果 LEA SI,STRING1 ;被加数的偏移地址送SI LEA DI,STRING2 ;加数的偏移地址送DI LEA BX,SUM ;结果的偏移地址送BX MOV CX,4 ;每次加1位BCD数,共循环4次 CLC ;清进位标志 ;以下为四位BCD数的加法循环 AGAIN:MOV AL,[SI] ADC AL,[DI] ;带进位加 AAA ;非压缩BCD码加法调正 MOV [BX],AL ;保存调整后的结果 INC SI ;调整三个地址指针 INC DI INC BX DEC CX ;循环计数器减1 JNZ AGAIN ;若未处理完,则循环 HLT (2)压缩BCD码的加法调整指令DAA 【格式】 DAA 【操作】 若AL的低4位>9∨AF=1,则(AL)←(AL)+6,AF←1; 若AL的高4位>9∨CF=1,则(AL)←(AL)+60H,CF←1。 调整原理与非压缩BCD码加法调整相同。 【功能】 对两个压缩BCD码相加的和(在AL中)进行调整,产生正确的压缩BCD码。 【标志位】 除OF外,其余状态标志位都受到影响。 【说明】 DAA指令应紧跟在ADD或ADC指令之后使用,且ADD或ADC指令的执行结果必须放在AL中。 【例3】用十进制计算48+27,程序段如下: MOV A

文档评论(0)

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

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

1亿VIP精品文档

相关文档