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

付费下载

下载本文档

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

文档简介

本次课程要点:1、掌握循环程序设计的基本结构。2、掌握多种不同循环程序设计的格式及应用。第10章循环程序设计N循环结束工作部分修改部分结束处理部分初始化部分初始化部分Y控制部分初始化部分工作部分修改部分循环结束结束处理部分Y控制部分N一、循环程序基本结构

第10章循环程序设计先执行后判断先判断后执行二、循环控制方法1、用计数控制循环使用计数器,达到计数器预定值,循环结束。要求循环次数已知。计数器可以递增、递减可以选用寄存器、也可用存储单元第10章循环程序设计例1:用正计数法,计算数组ARRAY所有单元的和。累加和、计数器、数组指针清0开始结束累加计数器=循环次数?YN数组指针,计数器加1第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,ARRAY[SI];数组累加

INCSI;数组指针后移

INCCX;计数器加1CMPCX,COUNT;计数器值与循环次数比较

JLNEXT;如果小于,继续循环

MOVBYTEPTRSUM,AL;将累计和存入变量

MOVAH,4CHINT21HCODEENDSENDSTART第10章循环程序设计开始初始化计数器CX逻辑尺i位=0?进行XOR运算结束流程图进行AND运算i=0YN结果存入Zi=i+1CX=0?NY2、用条件控制循环找出一个终止循环的条件,每循环一次,对条件进行一次检测。满足终止循环的条件,退出循环,否则继续。通常选用条件转移指令来控制循环是否结束。第10章循环程序设计二、循环控制方法例4:编写程序,求解兔子繁殖问题,给出到指定只兔子数时,需要多少个月。

开始结束新数≥给定数?YN月数CX初始化数列初始化交换AX,BX产生新的斐波那契数月数加1存储月数时间初生兔子成熟兔子兔子总数11012011311241235235635875813881321913213410213455第10章循环程序设计实现程序如下:

DATASEGMENTRABBITNUMDW650;存放兔子只数

MONTHNUMDB?;存放月数

DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXXORCX,CX;计数器清0MOVAX,0;斐波那契数初始值

MOVBX,1NEXT:XCHGAX,BXADDAX,BX;产生一个新的斐波那契数

INCCL;计数器加1CMPAX,RABBITNUM;比较产生的新数与给定数

JAERESULT;如果大于或等于,结束

JMPNEXT;小于,继续循环

RESULT:MOVMONTHNUM,CLMOVAH,4CHINT21HCODEENDSENDSTART1、内循环必须完整地包含在外循环内,二者不可以相互交叉。2、当从外循环再次进入内循环时,内循环的初始条件要重新设置。3、一个外循环中可以包含多个内循环,这些内循环可以嵌套,也可以并列存在。4、当内外循环都采用CX寄存器作为计数器时,由外循环进入内循环时,要保留外循环的次数,可以通过压入堆栈、存入其它寄存器或存储器中实现。5、当外层循环要求内层循环在不同条件下重复执行时,外循环中应该包括对内循环部分参数的修改部分。三、多重循环程序设计第10章循环程序设计开始结束

CX=0?YN行号J=0,乘法表指针DI=0外循环次数CX=9外循环次数CX入栈行号J加1I*J存入乘法表修改指针DI加1列号I=0,内循环次数CX=9列号I加1内循环次数CX减1恢复外循环次数外循环次数CX减1

CX=0?YN例5编写程序,在存储器中构造一个九九乘法表。

DATASEGMENTMULTABLEDB9*9DUP(0)DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBH,0;将行号初值存入BHXORDI,DI;将乘法表的指针清0MOVCX,9;外循环次数为9OUTERLOP:PUSHCX;将外循环次数入栈保护

INCBH;行号加1MOVBL,0;将列号初值存入BLMOVCX,9;内循环次数为9INNERLOP:INCBL;列号加1MOVAL,BH;将行号存入ALMULBL;将行号*列号存入ALMOVMULTABLE[DI],AL;将AL存入乘法表中

INCDI;修改乘法表指针

LOOPINNERLOP;内循环控制语句

POPCX;恢复外循环次数

LOOPOUTERLOP

温馨提示

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

评论

0/150

提交评论