次课第10章循环程序设计_第1页
次课第10章循环程序设计_第2页
次课第10章循环程序设计_第3页
次课第10章循环程序设计_第4页
次课第10章循环程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本次课程要点:,1、掌握循环程序设计的基本结构。2、掌握多种不同循环程序设计的格式及应用。,第10章循环程序设计,一、循环程序基本结构,第10章循环程序设计,先执行后判断,先判断后执行,二、循环控制方法,1、用计数控制循环使用计数器,达到计数器预定值,循环结束。要求循环次数已知。计数器可以递增、递减可以选用寄存器、也可用存储单元,第10章循环程序设计,例1:用正计数法,计算数组ARRAY所有单元的和。,第10章循环程序设计,DATASEGMENTARRAYDB1,2,3,4,5,6,7,8,9,10COUNTEQU$-ARRAYSUMDW?DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORAX,AX;AX寄存器清0,累加用MOVCX,0;计数器CX清0MOVSI,0;数组指针清0,第10章循环程序设计,NEXT:ADDAL,ARRAYSI;数组累加INCSI;数组指针后移INCCX;计数器加1CMPCX,COUNT;计数器值与循环次数比较JLNEXT;如果小于,继续循环MOVBYTEPTRSUM,AL;将累计和存入变量MOVAH,4CHINT21HCODEENDSENDSTART,第10章循环程序设计,例2:用倒计数法,统计字符串String中大写字母的个数。,第10章循环程序设计,二、循环控制方法,1、用计数控制循环,例2程序,例3:已知数组X和Y各有10个元素,将两个数组按以下公式计算,结果存入Z中。,第10章循环程序设计,二、循环控制方法,1、用计数控制循环,Z1=X1ANDY1Z2=X2XORY2Z3=X3XORY3Z4=X4ANDY4Z5=X5XORY5Z6=X6ANDY6Z7=X7XORY7Z8=X8ANDY8Z9=X9XORY9Z10=X10XORY10,开始,初始化计数器CX,逻辑尺i位=0?,进行XOR运算,结束,流程图,进行AND运算,i=0,Y,N,结果存入Z,i=i+1,CX=0?,N,Y,2、用条件控制循环找出一个终止循环的条件,每循环一次,对条件进行一次检测。满足终止循环的条件,退出循环,否则继续。通常选用条件转移指令来控制循环是否结束。,第10章循环程序设计,二、循环控制方法,例4:编写程序,求解兔子繁殖问题,给出到指定只兔子数时,需要多少个月。,第10章循环程序设计,实现程序如下:DATASEGMENTRABBITNUMDW650;存放兔子只数MONTHNUMDB?;存放月数DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORCX,CX;计数器清0MOVAX,0;斐波那契数初始值MOVBX,1,NEXT:XCHGAX,BXADDAX,BX;产生一个新的斐波那契数INCCL;计数器加1CMPAX,RABBITNUM;比较产生的新数与给定数JAERESULT;如果大于或等于,结束JMPNEXT;小于,继续循环RESULT:MOVMONTHNUM,CLMOVAH,4CHINT21HCODEENDSENDSTART,1、内循环必须完整地包含在外循环内,二者不可以相互交叉。2、当从外循环再次进入内循环时,内循环的初始条件要重新设置。3、一个外循环中可以包含多个内循环,这些内循环可以嵌套,也可以并列存在。4、当内外循环都采用CX寄存器作为计数器时,由外循环进入内循环时,要保留外循环的次数,可以通过压入堆栈、存入其它寄存器或存储器中实现。5、当外层循环要求内层循环在不同条件下重复执行时,外循环中应该包括对内循环部分参数的修改部分。,三、多重循环程序设计,第10章循环程序设计,例5编写程序,在存储器中构造一个九九乘法表。,DATASEGMENTMULTABLEDB9*9DUP(0)DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBH,0;将行号初值存入BHXORDI,DI;将乘法表的指针清0MOVCX,9;外循环次数为9OUTERLOP:PUSHCX;将外循环次数入栈保护INCBH;行号加1MOVBL,0;将列号初值存入BLMOVCX,9;内循环次数为9,INNERLOP:INCBL;列号加1MOVAL,BH;将行号存入ALMULBL;将行号*列号存入ALMOVMULTABLEDI,AL;将AL存入乘法表中INCDI;修改乘法表指针LOOPINNERLOP;内循环控制语句POPCX;恢复外循环次数LOOPOUTERLOP;外循环控制语句MOVAH,4CHINT21HCO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论