分支与循环程序设计.ppt
《分支与循环程序设计.ppt》由会员分享,可在线阅读,更多相关《分支与循环程序设计.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 分支与循环程序设计 n5.1 转移 n5.2 分支结构程序设计 n5.3 循环程序设计 n5.4 跳转表 5.1 转移 转移指令分:n无条件转移指令n条件转移指令 5.1.1 无条件转移指令 n无条件转移指令JMP 作用相当于goto语句,但使用频繁。n分为:n段内转移 n段内短转移n段间转移 1段内转移 n格式:JMP SRCn功能:跳转到SRC指定的位置继续执行 nSRC可以是:n程序标号 如:JMP _Donen寄存器 如:JMP EAXn内存操作数 如:JMP EBX 2段内短转移 格式:JMP SHORT SRCnJMP指令仅占2字节nSRC必须是一个程序标号n同JMP SR
2、C相比,短转移跳转的范围较小 3段间转移 在保护模式下,段间转移指令用来n切换任务n跳转到调用门指定的程序入口n执行另一个代码段内的程序 例如:JMP 0060:005B5E205.1.2 条件转移指令 格式:JCC LABELX功能:如果条件CC为真,则转移到LABELX处执行,否则顺序执行下一条指令。nLABELX是程序中的一个标号;nCC是条件标志位,指定了转移的条件。条件转移指令分类1依据单个标志位的条件转移指令2依据有符号数比较结果的条件转移指令3依据无符号数比较结果的条件转移指令4依据CX/ECX是否为0的条件转移指令1依据单个标志位的条件转移指令 例如,求DIST|AB|。MOV
3、 EAX,A SUB EAX,B JNS A10 NEG EAXA10:MOV DIST,EAX JNS比较SF的值,如果EAX是正数或0,就跳转到A10,否则执行下一句。2依据有符号数比较结果的条件转移指令例如,求有符号数A和B的较大值MAXAB。MOV EAX,A CMP EAX,B JGE a20 MOV EAX,Ba20:MOV MAXAB,EAXA大于等于B时,跳转到a20处,此时EAXA;A小于B时,不跳转,EAXB。3依据无符号数比较结果的条件转移指令例如,求无符号数A和B的最大值MAXAB MOV EAX,A cmp EAX,B JAE a30 MOV EAX,Ba30:MOV
4、 MAXAB,EAX和前面程序的区别只在于条件跳转指令的选择。有符号数判断使用JGE,而无符号数判断使用JAE。4依据CX/ECX是否为0的条件转移指令n格式1:JCXZ LABELXn格式2:JECXZ LABELXn功能:如果CX/ECX等于0,则转移到LABELX处执行,否则顺序执行下一条指令。5.2 分支结构程序设计 n5.2.1 单分支结构和双分支结构 n5.2.2 多分支结构n5.2.3 折半查找程序 n5.2.4 有序表插入5.2.1 单分支结构和双分支结构n单分支结构n双分支结构 对于单分支结构的程序,由条件转移指令来判断条件是否满足:n条件满足时,跳过分支程序n条件不满足时,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 循环 程序设计
限制150内