5_2 程序 2011 final.pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理及应用 信息与电气工程学院 孙秀娟 第5章 控制转移和程序结构 5.2 分支程序结构 5.2.1 条件转移指令 5.2.2 单分支结构 5.2.3 双分支结构 5.2.4 多分支结构 5.2.1 条件转移指令 根据指定的条件确定程序是否发生转移 Jcc label 条件满足,发生转移;否则,顺序执行下一条指令 LABEL表示目标地址,采用段内相对寻址方式 16位80x86微处理器:-128~+127间的短转移 32位IA-32微处理器:32位的全偏移量 条件转移指令不影响标志,但要利用标志 cc表示利用标志判断的条件(16种、两类) 单个标志状态作为条件 两数大小关系作为条件 5.2.1 条件转移指令 —转移条件cc:单个标志状态 JZ/JE ZF=1 Jump if Zero/Equal JNZ/JNE ZF=0 Jump if Not Zero/Not Equal JS SF=1 Jump if Sign JNS SF=0 Jump if Not Sign JP/JPE PF=1 Jump if Parity/Parity Even JNP/JPO PF=0 Jump if Not Parity/Parity Odd JO OF=1 Jump if Overflow JNO OF=0 Jump if Not Overflow JC CF=1 Jump if Carry JNC CF=0 Jump if Not Carry 5.2.1 条件转移指令 —转移条件cc:两数大小关系 JB/JNAE CF=1 Jump if Below/Not Above or Equal JNB/JAE CF=0 Jump if Not Below/Above or Equal JBE/JNA CF=1或ZF=1 Jump if Below/Not Above JNBE/JA CF=0且ZF=0 Jump if Not Below or Equal/Above JL/JNGE SF≠OF Jump if Less/Not Greater or Equal JNL/JGE SF=OF Jump if Not Less/Greater or Equal JLE/JNG ZF≠OF或ZF=1 Jump if Less or Equal/Not Greater JNLE/JG SF=OF且ZF=0 Jump if Not Less or Equal/Greater 5.2.1 条件转移指令 —单个标志状态作为条件 JZ(JE)和JNZ(JNE):利用零位标志ZF 判断结果是零(相等)还是非零(不等) JS和JNS:利用符号标志SF 判断结果是负还是正 JO和JNO:利用溢出标志OF 判断结果是溢出还是没有溢出 JP(JPE)和JNP(JPO):利用奇偶标志PF 判断结果低字节“1”的个数是偶数还是奇数 JC和JNC:利用进位标志CF 判断结果是有进位(为1)还是无进位(为0) 5.2.1 条件转移指令 —实现指令CBW功能的程序(1) 8086指令CBW 相当于IA-32指令 MOVSX AX, AL 如果AL最高位为0,则设置AH=00H 如果AL最高位为1,则设置AH=FFH 如何判断AL最高位是“0”,还是“1” 涉及一个位,可采用位操作类指令 保留最高位不变,其他位变成0 逻辑与“80H”结果为0,AL最高位=0;否则是1 运算结果是否为0,零位标志ZF反映 JZ或JNZ指令判断并转移 5.2.1 条件转移指令 —实现指令CBW功能的程序(2) ;数据段 bvar db 56h ;代码段 mov al, bvar ;取出要判断的数据 test al, 80h ;测试最高位 jz next1 ;最高位为0(ZF=1),转移到标号 NEXT1 mov ah, 0ffh ;最高位为1,顺序执行:令AH=FFH jmp done ;无条件跳过另一个分支 next1: mov ah, 0 ;最高位为0转移到此执行:令AH=0 done: 5.2.1 条件转移指令 —实现指令CBW功能的程序(3) ;代码段 mov al, bvar ;取出要判断的数据 test al, 80h ;测试最高位 jnz next2 ;最高位为1(ZF=0),转移到标号 NEXT2 mov ah, 0 ;最高位为0,顺序执行: 设置AH=00H jmp done ;无条件跳过另一个分支 next2: mov

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档