指令系统(控制转移类指令).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文档。上传文档
查看更多
指令系统(控制转移类指令)

* 控制转移指令 ●无条件转移指令根据其转移范围的大小可以分为五种方式: 指令名称 指令格式 执行操作 1.段内直接短转移 JMP SHORT OPR IP← IP + 8位位移量 2.段内直接近转移 JMP NEAR PTR OPR IP ← IP + 16位位移量 3.段内间接转移 JMP WORD PTR OPR IP ← EA 4.段间直接转移 JMP FAR PTR OPR IP ← OPR 的段内偏移地址 CS ← OPR所在段的段地址 5.段间间接转移 JMP DWORD PTR OPR IP← EA CS ← EA+2 ● 1.无条件转移指令JMP ●指令功能:无条件地转移到由地址表达式所确定的目标单元。 ●指令格式:JMP 地址表达式 无条件转移指令的一般使用格式为:JMP 符号地址 ● 2.条件转移指令 1 条件转移指令 ●指令功能:根据前面指令形成的条件来确定转移目的的地址。 ●指令操作:当条件满足时程序转移至标号处, 转移范围只能在离当前IP的-128 ? +127个字节之内。 按照转移条件分为四类 1. 单个标志位的条件转移指令。如JZ(JE)、JP 2.两个无符号数比较的条件转移指令。如JB JNAE,JC 、JBE JNA 3.两个有符号数比较的条件转移指令。如JLE JNG 、JNL JGE 4.测试(CX) 0的条件转移指令。如JCXZ 指令分类 指令格式 执行条件 1.单个标志位的条件转移指令 JZ(JE) 标号 ZF 1 JNZ(JNE) 标号 ZF 0 JS 标号 SF 1 JNS 标号 SF 0 JO 标号 OF 1 JNO 标号 OF 0 JP 标号 PF 1 JNP 标号 PF 0 JC 标号 CF 1 JNC 标号 CF 0 2.两个无符号数比较的条件转移指令 JB JNAE 标号 CF 1 < JNB JAE 标号 CF 0 ≥ JBE JNA 标号 CF∨ZF 1 ≤ JNBE JA 标号 CF∨ZF 0 > 3.两个有符号数比较的条件转移指令 JL JNGE 标号 SF⊕OF 1 < JNL JGE 标号 SF⊕OF 0 ≥ JLE JNG 标号 SF⊕OF ∨ZF 1 ≤ JNLE JG 标号 SF⊕OF ∨ZF 0 > ● 3. 1 计数循环指令LOOP 循环控制指令 ●指令格式:LOOP OPR ●指令功能:每执行一次LOOP指令,CX的内容减“1”,若(CX)≠0,则循环转移到目的地址TARGET重复执行其间的程序段,直到(CX) 0,退出循环,顺序执行下条指令。 例[4-18]把数据区buffer内的50个有符号字节数将正(零归正数)、负数分开,并分别送到NUM1和NUM2两个缓冲区的程序如下: LEA SI,BUFFER LEA DI,NUM1 LEA BX,NUM2 MOV CX,50 BEG: MOV AL,[SI] INC SI TEST AL,80H JNZ MINUS MOV [DI],AL INC DI JMP AGAIN MINUS:MOV [BX],AL INC BX AGAIN:LOOP BEG HLT 2 结果为零或相等时循环指令LOOPE/LOOPZ ●指令格式:LOOPZ(LOOPE) OPR ●指令功能:使(CX)-1→CX,当(CX)≠0,且ZF 1时,则循环转移至目的地址TATGET去重复执行其间的程序段。当(CX) 0,或ZF 0,退出循环,顺序执行本指令的下条指令。 例 [4–19]找出以NUM为首地址的100个字节数组中第一个非零项,并将其置于AL 中,数组中若无非零项,则(AL) 0。程序如下: MOV CX,100 LEA BX,NUM MOV SI,0FFFFH ZERO:INC SI CMP BYTE PTR [BX+SI],0 LOOPZ ZERO JZ OVER MOV AL,[BX+SI] JMP DONE OVER :MOV AL,0 DONE:HLT 3 结果不为零或不相等时循环指令LOOPNE/LOOPNZ ●指令格式:LOOPNZ(LOOPNE) OPR ●循环条件:ZF 0 且 (CX)≠0 ●执行操作:① CX ← CX -1; ② 检查是否满足循环条件: 如满足则实行循环; 不满足则退出循环。 过程调用指令CALL与返回指令RET ● 4. 为便于模块化程序设计,可把某些经常重复出现的一段程序独立编制成一个模块,称为一个子过程或子程序。程序中可由

文档评论(0)

zilaiye + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档