循环程序设计ppt课件.ppt

循环程序设计ppt课件.ppt

ID:59471157

大小:952.00 KB

页数:37页

时间:2020-09-14

循环程序设计ppt课件.ppt_第1页
循环程序设计ppt课件.ppt_第2页
循环程序设计ppt课件.ppt_第3页
循环程序设计ppt课件.ppt_第4页
循环程序设计ppt课件.ppt_第5页
资源描述:

《循环程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微型计算机原理及应用第4章 汇编语言程序设计循环程序有两种结构:“先执行,后判断”和“先判断,后执行。4.4.4循环结构程序初始化循环体参数修改循环控制?YN程序当中有一部分指令,需要反复的执行,需要编写循环结构程序。初始化循环体修改参数循环控制?YN先执行,再判断条件。先判断条件,再执行无论哪种结构,循环程序都可由如下四部分组成:(1)循环初始化部分循环之前的一些准备工作。比如数据处理一般要设置地址指针、循环次数及某标志的设置,相关寄存器的清零等操作。只有正确地进行了初始化设置,循环程序才能正确运行,及

2、时停止。(2)循环体:是要重复执行的那部分指令或程序段。(3)修改参数:为下一次循环做些准备。比如说地址指针的修改,循环次数的检验(4)循环控制:就是循环的判别,我这次循环是否该结束了循环结束的控制:用计数器控制循环结束。(见实例)用特征码控制循环结束。(见实例)循环程序结构【例1】※设内存BUFF开始的单元中依次存放着30个8位无符号数,求它们的和并放在SUM单元中,试编写程序MOVSI,BUFF;设地址指针MOVCX,30;设计数初值XORAX,AX;设累加器初值(标志位清零AGAIN:ADDAL,[

3、SI]ADCAH,0;INCSILOOPAGAIN;循环累加MOVSUM,AX循环程序结构解决ADDAL,[SI]的进位问题AH=AH+0+CF数据段怎么处理?[例2]统计以BUFFER为起始地址的100个单元中负数的个数,并将统计出来的负数个数送NUM单元。(P145)XORBL,BL;存放负数的个数MOVCX,100;统计次数LEASI,BUFFERCLDNEXT:LODSB;取一个数TESTAL,80HJZGOONINCBLGOON:LOOPNEXT;是负数,计数器加1MOVNUM,BL例3将BX中

4、的16进制数转换为ASCII码,存放到BUF开始的内存单元中,并在屏幕上显示出数值。数字0—9对应的ASCII码为30H---39H(加30H)数字A—F对应的ASCII码为41H---46H(加37H)循环程序结构MOVSI,OFFSETBUFMOVCH,4;四个16进制数需要处理NEXT:MOVCL,4;左移4位ROLBX,CLMOVAL,BLANDAL,0FHCMPAL,0AHJCSTOREADDAL,7HSTORE:ADDAL,30HMOV[SI],ALMOVAH,2MOVDL,ALINT21HI

5、NCSIDECCHJNZNEXTHLT循环程序结构循环程序结构例[4]※统计AX寄存器中1的个数,结果放到CL寄存器中。MOVCL,0;将来放1的个数L1:ANDAX,AX;AX不变,但影响ZF标志位JZSTOP;如果AX=0那么下面的程序就不必要了SALAX,1;算术左移,将最低位送入CFJNCL2;检验CF的值是1还是0?INCCLL2:JMPL1STOP:MOVAH,4CHINT21H该程序没有设置循环次数,看AX是不是0决定是否循环循环程序结构参考程序(2)MOVCH,16MOVCL,0L1:SA

6、LAX,1JNCL2INCCLL2:DECCHJNZL1STOP:MOVAH,4CHINT21H先判断,后执行该程序有设置循环次数,看CH是不是0决定是否循环8.5子程序设计1.子程序的定义程序设计中,把多次重复出现、具有通用性、能够完成特定处理任务的程序段编写成独立的程序模块。特性:(1)重复性;(2)通用性;(3)浮动性;(4)模块化;8.5.1子程序概念主程序与子程序调用关系主程序K:调用子程序ADK:……J:调用子程序ADJ:…………子程序A……返回主程序8.5.1子程序概念MAINPROCFAR

7、;主程序……CALLSUBR1……RETMAINENDPSUBR1PROCNEAR;子程序(NEAR可省略)……RETSUBR1ENDPMAIN及其子程序SUBR1在同一代码段中,SUBR1定义为NEAR属性。如果调用程序和子程序不在同一个代码段中,则使用FAR属性程序的主程序看作DOS调用的一个子程序,因而DOS对MAIN的调用以及MAIN中的RET就是FAR属性。8.5.1子程序概念CALL和NEAR为调用指令基本功能:将子程序的返回地址(即CALL指令的下一条指令的地址,简称断点地址,包括段地址和偏

8、移地址)压入堆栈,以便执行完子程序后能返回主程序,并从断点处继续往下执行,然后按照某种寻址方式转向子程序的入口地址去执行子程序。子程序定义的语法格式:<子程序名>PROCAttribute…….RET<子程序名>ENDP子程序定义的语法格式SUBTPROCPUSHAX;现场保护PUSHBXPUSHCXPUSHDX……;子程序体POPDX;现场恢复POPCXPOPBXPOPAXRETSUBTENDP例5-13PUSH指令把子程序

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

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

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