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

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

ID:60760590

大小:299.00 KB

页数:47页

时间:2020-02-02

第5章 循环与分支程序设计.ppt_第1页
第5章 循环与分支程序设计.ppt_第2页
第5章 循环与分支程序设计.ppt_第3页
第5章 循环与分支程序设计.ppt_第4页
第5章 循环与分支程序设计.ppt_第5页
资源描述:

《第5章 循环与分支程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5章循环与分支程序设计分支结构子程序结构程序结构:复合结构:多种程序结构的组合…顺序结构循环结构DO-WHILE结构DO-UNTIL结构控制条件初始化循环体YN控制条件初始化循环体YN循环程序结构设置循环的初始状态循环的工作部分及修改部分1.计数控制:循环次数已知2.特征值控制:次数已知,提前结束3.地址边界控制:循环次数未知5.2分支程序设计…case1case2casen??case1case2casenCASE结构IF-THEN-ELSE结构程序的分支一般用条件转移指令来产生,控制条件是关键。可以采用以下几种方式:(1)条件控制(2)逻辑尺控制(3)地址跳跃表(值与地址有对应关系

2、的表)一、循环指令LOOP//计算0+1+2+3+4+5+6+7+8+9的值intsum=0;for(inti=0;i<10;i++)sum=sum+i;//计算0+1+2+3+4+5+6+7+8+9的值movax,0movbx,0movcx,10s:addax,bxincbxloops标号S代表一个地址ax相当于sumbx相当于i判断Loop指令指令的格式是:loop标号CPU执行loop指令的时候,要进行两步操作:①(cx)=(cx)-1;②判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行,退出循环。可见,cx中的值影响着loop指令的执行结果。用loop指令来实现循环

3、功能时,cx中要存放循环次数。程序代码:codesegmentassumecs:codestart:movax,2movcx,10s:addax,axloopsmovax,4c00hint21hcodeendsendstart这个程序的功能是什么?该程序实现的功能是计算2∧11我们可以总结出用cx和loop指令相配合实现循环功能的三个要点:(1)在cx中要存放循环次数;(2)loop指令中的标号所标识地址要在前面;(3)要循环执行的程序段,要写在标号和loop指令的中间。(4)loop指令的执行部影响条件码标志位。例3.80:求首地址为ARRAY的M个字之和(不考虑溢出),结果存入TOT

4、AL(ARRAY和TOTAL都被定义为字变量)MOVCX,MMOVAX,0MOVSI,AXAGAIN:ADDAX,ARRAY[SI]ADDSI,2LOOPAGAINMOVTOTAL,AX寄存器相对寻址方式例:编制程序将存放在首地址为ARRAY的字符串“happynewyear”向高地址方向移动一个字节的位置datasegmentarraydb‘happynewyear’dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovax,4c00hint21hcodeendsendstartmovcx,14;设置循环次

5、数movbx,13;初始化s:moval,array[bx]movarray[bx+1],aldecbxloops请描述下列程序的功能将内存ffff:0~ffff:b单元中的数据拷贝到0020:0~0020:b单元中。二、可提前结束的循环指令功能格式测试条件当为0或相等时循环LOOPZ/LOOPE标号ZF=1且(CX)≠0不为0或不相等循环LOOPNZ/LOOPNE标号ZF=0且(CX)≠0执行步骤:(1)(CX)←(CX)-1(2)检查是否满足测试条件,如满足则实现循环;不满足则退出循环。注意:*CX中存放循环次数*与比较指令CMP联合使用可提前退出循环。例:编制程序查找存放在首地址为

6、string的字符串中的字母“n”,找到则将其改为大写的“N”,没找到则结束程序datasegmentstringdb‘happynewyear’dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovax,4c00hint21hcodeendsendstartmovcx,14;设置循环次数movbx,-1;初始化moval,”n”s:incbxcmpal,array[bx]loopnzs(若zf=0,没有找到,结束程序)movarray[bx],”N”三、控制转移指令:8086CPU的转移指令分为:1、无条

7、件转移指令(jmp)2、条件转移指令(jxx)3、循环指令loop4、子程序调用与返回5、中断int1、无条件转移指令:JMP段内直接短转移:JMPSHORTOPR执行操作:(IP)←(IP)+8位位移量段内直接近转移:JMPNEARPTROPR执行操作:(IP)←(IP)+16位位移量段内间接转移:JMPWORDPTROPR执行操作:(IP)←(EA)段间直接远转移:JMPFARPTROPR执行操作:(IP)←OPR的段内偏移地址

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。