汇编语言循环程序设计.ppt
《汇编语言循环程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编语言循环程序设计.ppt(27页珍藏版)》请在三一办公上搜索。
1、5.6.3 循环程序设计,循环程序结构就是重复执行某一段程序,直到某个条件出现为止。循环程序结构同分支程序结构有相似之处,都是根据条件来实现的,只不过循环是一种运动方向总是向后的分支程序结构。因此,循环可以用分支来实现。IP值受计数器CX中的值不为0而循环影响标志的指令DEC。,循环初始状态,循环控制条件,循环体,循环初始状态,循环初始状态,循环控制条件,Y,Y,N,N,1.循环程序的组成一个循环程序通常由四部分构成:初始化部分建立循环初始值。如初始化地址指针,计数器,其他循环参数的起始值等。工作部分它是循环程序的这主要部分,是为完成某种特定功能而设计的程序段。修改部分为保证正确的循环而修改某
2、些参数。如修改计数器的值、操作数地址等。控制部分,判断循环结束条件是否成立。这是循环程序设计的关键。通常判断循环是否结束的办法有两种:用计数控制循环:循环是否已进行预定次数,它适用于已知循环次数的循环程序设计;用条件控制循环:循环终止条件是否已成立,它适用于未知循环次数的循环程序设计。2.循环控制方法 用计数控制循环,例3 在xx单元开始的连续单元中存放有10个无符号数,从中找出中最大者送yy单元。根据题意,我们把第一个数先送入AL寄存器中,然后将AL中的数与后面的9个数逐个进行比较。如果AL中的数较小,则两数交换;如果AL中的数大,则不交换。在比较过程中,AL中始终保持较大的数,这样,比较9
3、次后,则最大的数在AL中,最后把AL中的数(最大者)存入yy单元。由此可画出程序的流程图:,从一批数中求最大者流程图,开始,ALxx,BXxx的有效地址,CX9,BXBX+1,AL BX?,AL,BX中的数交换,CXCX-1,CX=0?,yyAL,结束,Y,Y,N,N,程序编写如下:DATASEGMENTxxDB 49,38,65,12,97,13,55,27,28,85yyDB?DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,xxMOV AL,BXMOV CX,9,LOOP1:INC BX C
4、MP AL,BXJAE LOOP2XCHG AL,BXLOOP2:DEC CXJNZ LOOP1MOV yy,ALMOV AH,4CHINT 21HCODEENDSEND START,(2)用条件控制循环有些情况无法确定循环次数,但是循环何时结束,可用某种条件来确定。这时,编制程序主要是寻找控制条件及对控制条件的检测。例5 从自然数1开始累加,直到累加和大于1000为止,统计被累加的自然数的个数,并把统计的个数送入n单元,把累加和送入sum单元。根据题意,被累加的自然数的个数事先是未知的,也就是说,循环的次数是未知的,因此不能用计数器方法控制循环。但题目中给定一个重要条件,即累加和大于1000
5、则停止累加,因此,可以根据这一条件控制循环。我们用CX寄存器统计自然数的个数,用AX寄存器存放累加和,用BX寄存器存放每次取得的自然数。,程序的流程图如下所示。,开始,初始化 AX0,CX0,BX0,BXBX+1,AXAX+BX,CXCX+1,AX1000?,nCX,sumAX,结束,Y,N,程序编写如下:DATAS SEGMENT n DW?sum DW?DATAS ENDS STACK SEGMENT PARA STACK stack DW DUP(?)STACK ENDS CODES SEGMENT MAIN PROC FAR ASSUME CX:CODES,DS:DATAS,SS:ST
6、ACK START:PUSH DS MOV AX,0 PUSH AX MOV AX,DATASMOV DS,AX,MOV CX,0 MOV AX,0 MOV BX,0 LOOPT:INC BX ADD AX,BX INC CX CMP AX,1000 JLE LOOPT MOV n,CX MOV sum,AX RET MAIN ENDP CODES ENDS END START,3.多重循环程序设计 多重循环又称循环嵌套,即循环套循环。有些问题比较复杂,单重循环难以解决,必须使用多重循环。在使用多重循环时,必须注意以下几点:内循环必须完整地包含在外循环内,内外循环不能相互交叉。内循环既可以嵌套
7、在外循环中,也可以几个内循环并列存在。可以从内循环中直接跳到外循环,但不能从外循环直接跳进内循环中。防止出现“死循环”。无论是外循环,还是内循环,千万不要使循环返回到初始部分,这一点应当特别注意。,每次通过外循环再次进入内循环时,初始条件必须重新设置。例6利用逐次求大数的方法对内存单元ARRAY开始的一字节为单位的无符号数进行从大到小排序。根据题意,排序方法为:编制程序如下:,49,49,65,65,97,97,38,38,49,49,65,65,78,78,85,85,78,65,55,49,38,27,13,12,12,ARRAY,AL,DATASEGMENTARRAYDB 49,38,6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 循环 程序设计

链接地址:https://www.31ppt.com/p-5993757.html