- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理第三章3解析
③ A0,B0,A=-63,B=+127 OF=1时,若SF=0 则AB ④ A0,B0,可用SF判断 若SF=0 则A≥B 若SF=1 则AB 综上所述: OF=1时,若SF=0 则AB 若SF=1 则A≥B OF=0时,若SF=0 则A≥B 若SF=1 则AB 或者表述为 OF⊕SF =0时 A≥B OF⊕SF =1时 AB 6)减法ASCII调整指令AAS 功能:减法的ASCII调整(未组合BCD码减法调整) 格式:AAS 执行的操作: 这条指令之前必须执行SUB或SBB指令,减法指令必须把两个未组合(非压缩)BCD码相减,并把结果存放在AL寄存器中。 AAS指令影响AF和CF标志 AAS指令的调整步骤是: (1)如AL寄存器的低4位在十六进制数A~F之间或AF为1,则AL寄存器的内容减6,AH寄存器的内容减1,并将AF位置1; (2)清除AL寄存器的高4位; (3)AF位的值送CF位。 7)减法十进制调整指令DAS 功能:组合BCD码减法调整 格式:DAS 执行的操作: 这条指令之前必须执行SUB或SBB指令,减法指令必须把两个组合(压缩)BCD码相减,并把结果存放在AL寄存器中。 DAS指令影响AF和CF标志 DAS指令的调整步骤是: 如果AF标志(辅助进位位)为1,或者AL寄存器的低4位是十六进制的A~F,则AL寄存器内容减06H,且将AF位置1; 如果CF标志为1,或者AL寄存器的高4位是十六进制的A~F,则AL寄存器内容减60H,并将CF位置1。 算术运算指令 3 乘法指令 MUL src 无符号数乘法指令 IMUL src 有符号数乘法指令 AAM 未组合BCD码乘法调整指令 MUL指令的用法说明-1 格式: MUL src ;B/W 操作: 字操作数 DX, AX←AX*(src) 字节操作数 AX←AL*(src) 其中目的操作数dst为累加器,是隐含的。 字运算,必须用AX寄存器存放目的操作数(或称被乘数)。 字节运算,必须用AL寄存器存放目的操作数(或称被乘数)。 MUL指令的用法说明-2 源操作数src可使用寄存器操作数,各种寻址方式的存储器操作数。 不允许使用立即数和段寄存器作源操作数 当源操作数是存储单元时,必须在操作数前加B或W说明是字节还是字。 两个16位数相乘得到的是32位乘积,乘积存放在DX和AX中。 DX存放乘积的高位字,AX存放乘积的低位字。 两个8位数相乘得到的是16位乘积,乘积存放在AX中。 乘积高8位存放在AH中,乘积低8位存放在AL中。 若乘积的高半部分不为0,则OF=CF=1,表示其为有效数据。否则OF=CF=0。 MUL指令操作示意图 [例] MUL BL 指令执行前,AL=B4H=180,BL=11H=17。 指令执行 指令执行后,AX=0BF4H=3060,BL=11H, CF=1,OF=1。 [例] MUL DL ; AX←AL*DL MUL CX ; (DX,AX)←AX*CX MUL B[SI] ; AX←AL*(内存中某字节) MUL W[BX] ; (DX,AX)←AX*(内存中某字) MUL指令执行后影响CF和OF标志,如果结果的高半部分(字节操作为AH、字操作为DX)不为零,表明其内容是结果的有效位,则CF和OF均置1。否则,CF和OF均清0。通过测试这两个标志,可检测并去除结果中的无效前导零。乘法指令使AF、PF、SF和ZF的状态不定。 IMUL指令的用法说明 格式: IMUL SRC 执行的操作: 与MUL基本相同 不同的是MUL参加乘法运算的是无符号数,而IMUL参加运算的是有符号数。 存放结果的方式与MUL相同。如果源操作数为字节,则与AL相乘,双倍长结果送到AX中。如源操作数为字,则与AX相乘,双倍长结果送到DX和AX中,最后给乘积赋予正确的符号。 若乘积的高半部分是低半部分的符号位的扩展,则OF=CF=0,否则OF=CF=1。 [例] 设AL=-28H,BL=59H,试计算它们的乘积。 可使用下面指令: IMUL BL 结果: AX=0F98CH=-1652,CF=1,OF=1 AAM指令的使用说明 功能:对非压缩BCD码乘法结果作十进制调整 格式:AAM 执行的操作: (AX)←把AX中的乘积调整到非压缩的BCD格式 AAM指令之前必须执行MUL指令,把两个非压缩的BCD码相乘(此时要求其高4位为0),结果
文档评论(0)