计算机组织与结构第2章资料.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2)除法指令(对全部标志位影响不定) DIV与IDIV指令的注意事项: ③对有符号数相除,被除数或除数为负时,先将它们求补,变成无符号数,再除。 商的符号取决于被除数和除数二者。再根据结果的正负性情况决定是否再求补。 该指令的二进制相除的过程为: 例2-32:若AX=0400H,BL=B4H,求IDIV BL? 解:根据运算规则,先将为负数的BL求补,|BL|=4CH。由于AX本身为正,所以可以将这两者进行二进制运算,过程如下: 然后再考虑是否需要为商及余数继续求补。因为被除数为正、除数为负,所以商为负,故需对绝对值商 因为余数的符号同被除数,所以余数 AH=(100100)2=24H。 3.十进制调整指令 调整的原理和思想:十进制的调整指令会根据CF(多字节)或AF的值,以及4位二进制数码是否大于9来决定是滞加6调整。 举例说明:8+7=15 举例说明:9+9=18 1)压缩的BCD码调整指令 (1)加法的十进制调整 格式:DAA ;B,除OF外,其他5个受影响,前提是先执行ADD或ADC,和放在AL中。 调整方法: a.如AF=1,或AL中低4位是16进制A~F,则AL的内容加06H,置AF=1。 b.如果CF=1,或AL高4位是16进制A~F,则AL中内容加60H,置CF=1。 被调整的8位二进制数是通过一条DAA指令一次性调整的,而不是用一次DAA只调整4位。 (2)减法调整指令 格式:DAS;B 除OF外,影响其余5个条件码,前提是用SUB或SBB指令,差放在AL中。 调整方法: a.如AF=1,或AL中低位4位是一个十六进制A~F,则AL中内容减06H,置AF=1。 b.如CF=1,或AL中高位4位是一个十六进制A~F,则AL中内容减60H,置CF=1。 2)非压缩的BCD码的调整指令 (1)加法ASCII码调整指令 格式:AAA;B,只影响CF,OF,前提同DAA指令。 例2-34:已知AX=0535H,BL=39H,求下列两条指令执行结束后,AX中的值是多少? ADD AL,BL; AAA; 分析:ADD指令执行完后,AX=056EH,执行完AAA指令后,AX=0604H,顺利完成了两个十进制数55与9的求和运算。 (2)减法的ASCII码调整指令 格式:AAS;B,只影响CF、OF,前提同DAS。 2.3.3 逻辑运算和移位指令 逻辑运算指令是按位进行的,可以是8位或16位的数据,操作数时不能用段寄存器和立即数。 1.逻辑运算指令 例2-35:实现AL中的最低位如果为1,则转移到LABLE处。 TEST AL,01H JNZ LABEL …… LABEL: 2.移位指令 1)非循环移位 2)循环移位 循环移位指令共有四条,它们都只影响CF、OF标志位。 2.3.4 串操作指令 1.与REP前缀相配合工作的MOVS,STDS,LODS指令 例2-37: 执行串操作命令的几个前提: ①DS、ES置好初值 ②SI、DI置好初值 ③CX存放好循环次数 ④置好方向标志DF 但REP前缀指令在使用过程中有其局限性,它只能照搬照套,不方便在执行过程中进行相应的种类修改或改变等操作。 2.与REPZ/REPE和REPNZ/REPNE联合工作的CMPS和SCAS指令 (1)串比较指令,影响6个条件码 (2)串扫描指令,影响6个条件码 步骤同上,只将ZF=0改成ZF=1就可以了。注意指令执行完后指针的变化。 例2-39:(详见P64)REPE CMPSB    假设CX=10 例2-40:要从一串字符中找一指定字符,可以将要寻找字符的ASCII码存于AL中,然后采用 下述指令序列即可。 MOV DI,0100H MOV AL,20H MOV CX,10H;串长度 CLD REPNZ SCASB

文档评论(0)

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

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

1亿VIP精品文档

相关文档