第七章 循环程序设计.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文档。上传文档
查看更多
第七章 循环程序设计

汇编语言程序设计 主讲教师: 成长生 东华大学计算机科学与技术学院 第七章 循环程序设计 §7.1循环程序的框架 §7.2软循环 §7.3硬循环 §7.4多重循环 循环程序设计 循环程序设计 循环程序设计 循环程序设计 循环程序设计 循环程序设计 END * * 循环的概念在我们日常生活中是经常碰到的,如台钟它每隔30分钟钟摆就要敲打,即它有一定规律,重复做一件相同的事情。 所谓循环程序,就是在时间t的作用下,系统重复使用某一程序段。找规律,就要动脑筋,尤其在数学递推或递归函数上下功夫。凡有递归,必有循环。 如 s(n)=n!(1+1/2!+1/3!+1/4!+……+1/n!)式中n是自然数(不要抄笔记) 对于该算程直接编出s(n)的程序是比较困难的,下面我们把递推原理来找出规律性(循环程序工作的第一步都是这样,除少数十分简单的题之外) s(1)=1!(1/1!)=1 s(2)=2!(1+1/2!)=3 s(3)=3!(1+1/2!+1/3!)=10 . . s(n)=n!(1+1/2!+1/3!+………+1/n!) s(n+1)=(n+1)!(1+1/2!+1/3!+………+1/n!+1/(n+1)!) =(n+1)!((1+1/2!+1/3!+………+1/n!)+1/(n+1)!) =(n+1)! (1+1/2!+1/3!+………+1/n!)+1 由于(n+1)!=(n+1) n! 所以上式 =(n+1)n!(1+1/2!+1/3!+………+1/n!)+1 又由于 n! (1+1/2!+1/3!+………+1/n!)=s(n) 所以上式 s(n+1)=(n+1).s(n)+1 推得: s(n)=n.s(n-1)+1 令s(0)=0 (0不属于自然数,自然数=正整数) 于是采用递推的的函数不断迭代。计算s(n)就不再是用n! (1+1/2!+1/3!+………+1/n!)来进行(况且n是任意的),而是用n.s(n-1)+1来进行了 MOVE :MOVSB LOOP MOVE 循环体是movsb ,字节传送((DS): (SI))-((ES): (DI)) 循环体初值,任选次数事先送CX,SI、DI也预先置入 循环体修改 ,DI、SI自动加减1,(CX)-1-(CX) 循环体判断,(CX)不等于0,继续循环 先讲讲义p161 例5.1 ,5.3,5.4 例1 以line为变量名的80个字节可能包括字符串或空格,最后以空格结束,程序从开始查起,如果80个字节全是空格,转向标号为not_found程序段,如果遇有非空格字符,则将字符传到数据段标识名为SYMBOL的缓冲区,遇有空格符停止传送,或传送31个字符后停止传送。 Line的EA-(DI) 80-(cx) 空格的ASCII-AL (Line)-空格 (DI)-(AL) (cx)-1-(cx) Line地址递增 (DI)-1-(SI) 取Symbol的EA-(DI) 31-(cx) Line的数(DS):(SI)-(AL) (SI)递增 (AL)-(ES:DI) (cx)=0 and (ZF)=1? (ZF)=1? (AL)=’ ’ Ω Not found Ω Y N Y 80个全为‘ ’ N N Y 前面已加1 …… MOV AX , SEG LINE MOV ES , AX MOV DI, OFFSET LINE ;line的EA-(DI) MOV CX , 80 ;80个字节送入CX MOV AL , 20H ;空格的ASCII送入AL CLD NEXT: SCAS LINE ;(LINE)- (AL),(CX)-1-(CX)因为DF=0 所以DI自增 LOOPE NEXT ;(CX)-1-(CX),(ZF)=1 and (CX)不等于0则循环 JE NOT_FOUND ;若ZF=1,而(CX)=0,表示80个字节全为空格,转not_found MOV SI , DI DEC SI ;di在scas时已自增,此处减1,回归原址 MOV DI , OFFSET SYMBOL MOV CX , 31 FILL : STOS SYMBOL LOOP FILL ;(AL)-((ES) : (DI)) , (DI)+1-(DI),向symbol填31个空格 MOV DI , OFFSET SYMBOL MOV CX , 31 JMP

文档评论(0)

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

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

1亿VIP精品文档

相关文档