欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第5章分支与循环程序设计.ppt

    • 资源ID:60592038       资源大小:216.50KB        全文页数:33页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章分支与循环程序设计.ppt

    第5章分支与循环程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望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 SRC相比,短转移跳转的范围较小 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 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 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条件不满足时,继续向下执行,执行完分支后汇合。这点与C语言if语句不同。5.2.2 多分支结构 n以双分支结构为基础可以写出多分支结构的程序。n下面是求X的符号的函数的C程序和汇编程序的片段:sign.c sign.asmn判断是否为闰年的程序片段leapyear.asm n比较日期大小的程序片段 date.asm5.2.3 折半查找程序 n流程图(数组为R,元素个数n,数为a)折半查找执行过程 n(1)设定一个查找范围,下界为L和上界为hn(2)如果下界L大于上界h,则查找范围为空,查找结束。算法结束。n(3)取下界L和上界h的中点 m(L+h)/2n(4)从数组的中点m处取出一个数Rm,和a进行比较。折半查找执行过程(续)n(5)如果Rm等于a,则在数组中找到a,下标为m。算法结束。n(6)如果Rm大于a,则修改上界h为m1。然后跳转到第2步。n(7)如果Rm小于a,则修改下界l为m+1。然后跳转到第2步。实现折半查找的程序样例:split.asm结果为:Index=5 Count=3 Element=6805.2.4 有序表插入 要插入一个数到有序表中n找到插入位置n把数组的元素逐个向后移动n将这个数写到空出的位置实现有序表插入的程序 样例:insert.asm 5.3 循环程序设计 循环程序包含3部分:n循环初始化部分n循环体n循环控制部分 常见的循环控制结构:nwhile-do结构ndo-while结构 while-do结构和do-while结构 5.3.1 循环指令 nLOOP指令n循环次数放在ECX中,一般用于固定次数n格式:LOOP 标号n功能:ECX先减1,再检查ECX:nECX的值不为0,则跳转到标号处继续循环;n如果ECX的值为0,则循环结束。LOOP指令循环的格式为:MOV ECX,循环次数 标号:循环体 LOOP 标号举例:计算n!的递归程序 factoria.asm 结果:factorial(5)=120LOOPZ和LOOPNZ指令LOOPZ和LOOPNZ指令:循环体执行一次后,不仅要检查ECX的值,还会检查ZF。n格式:LOOPZ(LOOPNZ)标号n功能:ECX先减1,再检查ECX和ZF标志位:n如果ECX的值不为0,并且ZF为1(0),则跳转到标号处继续循环;n否则继续执行LOOPZ后面的下一条指令,循环结束。样例:数值转换convert.asm结果:hex format=18ef1365hdec format=0418321253dbin format=00011000111011110001001101100101bbits of 1 =165.3.2 不定次数的循环某些循环的执行次数预先并不能完全确定,而是根据执行的情况来决定是否继续循环或退出循环。这时,就不再适合用LOOP指令来构造循环了,而应该利用条件跳转指令来构造和控制循环。5.3.3 循环体中操作的控制n可以用数据来描述循环体内部的操作:每次循环过程中取出数据来决定循环要做的操作。n例如:由X和Y数组计算数组Z的计算公式为:Z0X0+Y0 Z1X1+Y1 Z2X2-Y2 Z3X3-Y3 Z4X4-Y4Z5X5+Y5 Z6X6+Y6 Z7X7-Y7 Z8X8+Y8 Z9X9-Y9则再设定一个数组OP,用0和1表示加法和减法。当计算Z的元素时,取出OP数组中的对应元素,来决定是做加法还是减法。5.3.4 多重循环循环嵌套构成多重循环 例如:将数组中的7个元素从小到大排列好,冒泡排序例子bubble.asm,过程如下5.4 跳转表适合程序中分支很多的情况 nC语言使用switch语句n汇编程序使用跳转表要实现一个简易的计算程序,输入两个操作数和一个运算符,计算结果并显示出来。C语言举例:equation.c 汇编语言举例:equation.asm

    注意事项

    本文(第5章分支与循环程序设计.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开