第4章_4 循环 子程序 DOS中断调用.ppt

第4章_4 循环 子程序 DOS中断调用.ppt

ID:48754304

大小:375.50 KB

页数:29页

时间:2020-01-21

第4章_4 循环 子程序 DOS中断调用.ppt_第1页
第4章_4 循环 子程序 DOS中断调用.ppt_第2页
第4章_4 循环 子程序 DOS中断调用.ppt_第3页
第4章_4 循环 子程序 DOS中断调用.ppt_第4页
第4章_4 循环 子程序 DOS中断调用.ppt_第5页
资源描述:

《第4章_4 循环 子程序 DOS中断调用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四章汇编语言程序设计汇编语言程序设计概述汇编语言基本语法汇编语言程序设计BIOS及DOS功能调用汇编语言程序设计实例在程序中重复执行相同功能的一段代码,可用循环程序实现。循环程序通常由五部分组成:初始化部分——为程序操作、地址指针、循环计数、结束条件等设置初始值。循环工作部分——循环程序主体,完成基本操作。循环修改部分——修改循环工作部分的变量,为重复操作做准备。循环控制部分——修改计数器或判断循环结束条件,决定是否终止循环。循环体循环结束部分——循环终止后,对循环结果的处理部分。循环结构程序设计循环程序概述终止起始初始化循环工

2、作循环修改循环控制完未完终止起始初始化循环工作循环修改循环控制完未完先执行后判断先判断后执行循环程序基本结构循环结构程序设计未完终止起始初始化循环工作循环修改循环控制完计数循环——重复次数已知,用计数值控制循环的开始与终止。条件控制循环——重复次数未知或不确定,需找出循环控制的条件。解:已知循环次数,采用计数循环控制。程序段如下:MOVCX,100;确定循环计数器值MOVBX,1;确定循环初值MOVAX,0;和的初值LOP:ADDAX,BXINCBXLOOPLOP;循环控制【例】编写程序计算C=1+2+3+4+……+100循环控制

3、方式循环结构程序设计计数循环的常见方法:减1循环MOVCX,NL:……DECCXJNZL加1循环MOVCX,-NL:……INCCXJNZLLOOP短标号MOVCX,NL:…………LOOPL解:无法确定循环次数,采用条件循环控制。程序段如下:MOVSI,OFFSETORGSTRIN;读源串地址MOVDI,OFFSETDESSTRIN;读目的串地址LOP:MOVAL,[SI]MOV[DI],ALINCSI;循环修改INCDICMPAL,‘$’JNZLOP;循环控制【例】将一个字符串拷贝到另一个存储区中,直到拷贝到字符“$”结束。循环体

4、中又有循环称多重循环。在多重循环程序设计时,应分别考虑每重循环的控制条件。通常内层循环要受外层循环的控制。解:采用冒泡排序法,从第一个数开始依次对相邻的两个数进行比较,如果次序正确则不做任何操作,如果次序不正确则将此两个数交换位置。【例】在首地址为Addr的存储单元中有N个数,编程序将此N个数按照从小到大的次序排列。多重循环循环结构程序设计开始CX←外循环次数DI←最后一个数的地址BX←0取BX位置上的数到AL与后一数比较大于小于交换两数位置BX←BX+1是否为最后的数?NYCX←CX-1结束CX==0?YNAADATASEGME

5、NTAddrDBNDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,NDECCXLOOPl:MOVDI,CX;设置外循环次数MOVBX,0;设置内循环条件LOOP2:MOVAL,Addr[BX]CMPAL,Addr[BX+1]JLCONTXCHGAL,Addr[BX+1];让大的数向地址高处移动MOVAddr[BX],ALCONT:INCBXCMPBX,DI;内循环判断JBLOOP2LOOPLOOP1;外循环控制条件MOVAH,4

6、CHINT21HCODEENDSENDSTARTMOVAX,3578HMOVCL,0L:ORAX,AX;判断AX是否为0JZEXIT;AX=0结束SHLAX,1;最高位进CFJNCLINCCLJMPLEXIT:INT20H【例】统计AX中1的个数。起始AX←3578HCL←0AX<<1终止AX==0?YNCF==1?NYCL←CL+1【例】BUF中有N个有符号数,分离其中的正负数,分别送入BUF1和BUF2中DATASEGMENTBUFDB12H,34H,-56H,-98H,096H,68H,56H,80HN=$-BUFBUF1D

7、BNDUP(0)BUF2DBNDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVDX,DATAMOVDS,AXLEASI,BUFLEADI,BUF1LEABX,BUF2MOVCX,NAA:MOVAL,[SI]INCSICMPAL,0JGEBBMOV[BX],ALINCBXJMPCCBB:MOV[DI],ALINCDICC:LOOPAA;DECCX;JNZAAMOVAH,4CHINT21HCODEENDSENDSTART(1)若DW定义BUF怎样修改?(2)能改为条件控制循

8、环吗?程序设计过程中常常把多次引用的相同程序段编成一个独立的程序段,当需要执行这个程序段时,用调用指令(CALL)调用该程序段即可。具有这种独立功能的程序段称为过程或子程序。子程序设计适合编成子程序的程序有两种:①程序需要反复使用,这类程序编写成子

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

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

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