- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 节 分支与循环程序设计 汇编语言程序设计 .ppt
条件跳转指令是高级语言中IF语句的最终实现方法,指令的数量繁多,同一种跳转条件的指令又可以有多种写法,记忆起来比较困难。不妨仔细分析一下指令助记符,可以看出绝大多数都是由7个英文单词的首写字母拼接在一起构成的,分别是Jump、Equal、Not、Above、Below、Great和Less。表 4.2把所有跳转指令进行了汇总。所有的跳转指令都不影响标志位的值。 表4.2 条件跳转指令汇总 写 法 含 义 跳转条件 备 注 JC, JB, JNAE 有进(借)位转,小于转 CF=1 只用于无符号数比较。其中关于CF的判断还有特殊用法,见第6章 JNC, JNB, JAE 没有进(借)位转,不小于转 CF=0 JBE, JNA 不大于转 CF=0或ZF=1 JA, JNBE 大于转 CF=0且ZF=0 JG, JNLE 大于转 ZF=0且SF=OF 只用于有符号数 比较 JGE, JNL 不小于转 SF=OF JL, JNGE 小于转 SF≠OF JLE, JNG 不大于转 SF≠OF或ZF=1 JE, JZ 等于转 ZF=1 无符号数和有符号数的比较都用 JNE, JNZ 不等于转 ZF=0 JCXZ CX为0转 CX=0 只用于判断CX值 JS 结果为负转 SF=1 依据单个条件标志位的跳转指令 JNS 结果非负转 SF=0 JO 结果溢出转 OF=1 JNO 结果没溢出转 OF=0 【注意】除JMP指令外,其它的跳转指令统称为条件跳转指令。汇编语言规定,条件跳转指令必须与所要跳转到的标号写在同一个段内,并且条件跳转指令所在偏移地址与跳转的标号所代表的偏移地址之间不能相隔太远。准确地说,如果跳转指令顺序上的下一指令的偏移地址是A1,而要跳转到的标号代表的偏移地址是A2,则两者必须满足条件-128≤A2-A1≤+127,但无条件跳转的JMP指令无此限制。 如果要求编程人员自己判断这件事是很困难的,好在汇编程序在翻译时有一个检查功能来判断跳转距离。如果跳转距离太大,则汇编程序会给出“Jump out of range by ×× byte(s)”的提示,并指出是源程序的哪一行出现这样的问题。解决的方法是先跳转到比较近的位置上,并在那里写上一个JMP指令,跳转到最终的目的地。 4.3 分支程序设计 典型的分支流程图 4.3.1 简单分支 4.3.2 两路分支 4.3.3 复杂条件的处理 4.3.4 多路分支 返回节目录 4.3 分支程序设计 图4.1 典型的分支流程 (a) 简单分支 (b) 两路分支 条件成立? Y Y 条件成立? N? 语句 语句 1 语句 2 语句 1 语句 2 语句 n 情况1 情况2 情况n 表达式计算结果是 …… (c) 多路分支 4.3.1 简单分支 这是最简单的一种分支形式,如果条件成立则需要完成一些操作,反之则跳过这些操作直接执行后续的指令。汇编语言简单分支的基本模式为: 设置标志位的指令 条件跳转指令 标号 需要完成的操作 标号: 后续指令 【例4.6】已知AX中放有一个带符号数,编写程序段,计算它的绝对值。 【分析】图4.2是完成例4.6所述操作的流程图。 AX 0 ? Y AX ← 0-AX N 图4.2 计算AX绝对值的流程 【解】程序段如下: ︰ CMP AX,0 ;把AX的值减去0,结果设置标志位 JGE lab1 ;带符号数大于或等于跳转,转到标号lab1处 MOV BX,AX ;把AX的值复制到BX中 MOV AX,0 SUB AX,BX ;AX←0?BX lab1: … 【例4.7】已知AX中放有一个16位无符号数,BL中放有一个8位无符号数,编写程序段把两者相加,结果放在DX中。 【分析】图4.3是例4.7的流程图。 AL ← AL + BL CF=0 ? AH ← AH + 1 N Y 图4.3 字型数据与字节型无符号数相加 【解】程序
您可能关注的文档
- 第4章 节 物流工程设施设备 物流工程新版 .ppt
- 第4章 节 特殊地质地段的隧道施工 《隧道工程施工》.ppt
- 第4章 节 甄选的基本方法—笔试 招聘与录用 .ppt
- 第4章 节 电子商务物流市场及物流模式(电子商务与现代物流课件).pptx
- 第4章 节 电子表格软件Excel 2003 大学计算机基础.ppt
- 第4章 节 电子表格软件Excel 2003计算机应用基础电子教案.ppt
- 第4章 节 疾病保险 保障法 .ppt
- 第4章 节 直流电动机 电机学课件.ppt
- 第4章 节 空间数据Coverage的创建 精通ArcGIS地理信息系统 .ppt
- 第4章 节 绘制基本图形元素(下) AutoCAD绘图简明教程(2008版) .ppt
文档评论(0)