电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第4章_4 循环 子程序 DOS中断调用VIP专享VIP免费

第4章_4 循环 子程序 DOS中断调用_第1页
第4章_4 循环 子程序 DOS中断调用_第2页
第4章_4 循环 子程序 DOS中断调用_第3页
第四章汇编语言程序设计汇编语言程序设计概述汇编语言程序设计概述汇编语言基本语法汇编语言基本语法汇编语言程序设计汇编语言程序设计BIOSBIOS及及DOSDOS功能调用功能调用汇编语言程序设计实例汇编语言程序设计实例在程序中重复执行相同功能的一段代码,可用循环程序实现。循环程序通常由五部分组成:初始化部分——为程序操作、地址指针、循环计数、结束条件等设置初始值。循环工作部分——循环程序主体,完成基本操作。循环修改部分——修改循环工作部分的变量,为重复操作做准备。循环控制部分——修改计数器或判断循环结束条件,决定是否终止循环。循环体循环结束部分——循环终止后,对循环结果的处理部分。循环结构程序设计循环结构程序设计循环循环程序概述终止起始初始化循环工作循环修改循环控制完未完终止起始初始化循环工作循环修改循环控制完未完先执行后判断先判断后执行循环循环程序基本结构循环结构程序设计循环结构程序设计未完终止起始初始化循环工作循环修改循环控制完计数循环——重复次数已知,用计数值控制循环的开始与终止。条件控制循环——重复次数未知或不确定,需找出循环控制的条件。解:已知循环次数,采用计数循环控制。程序段如下:MOVCX,100;确定循环计数器值MOVBX,1;确定循环初值MOVAX,0;和的初值LOP:ADDAX,BXINCBXLOOPLOP;循环控制【例】编写程序计算C=1+2+3+4+……+100循环循环控制方式循环结构程序设计循环结构程序设计计数循环的常见方法:减1循环MOVCX,NL:……DECCXJNZL加1循环MOVCX,-NL:……INCCXJNZLLOOP短标号MOVCX,NL:…………LOOPL解:无法确定循环次数,采用条件循环控制。程序段如下:MOVSI,OFFSETORGSTRIN;读源串地址MOVDI,OFFSETDESSTRIN;读目的串地址LOP:MOVAL,[SI]MOV[DI],ALINCSI;循环修改INCDICMPAL,‘$’JNZLOP;循环控制【例】将一个字符串拷贝到另一个存储区中,直到拷贝到字符“$”结束。循环体中又有循环称多重循环。在多重循环程序设计时,应分别考虑每重循环的控制条件。通常内层循环要受外层循环的控制。解:采用冒泡排序法,从第一个数开始依次对相邻的两个数进行比较,如果次序正确则不做任何操作,如果次序不正确则将此两个数交换位置。【例】在首地址为Addr的存储单元中有N个数,编程序将此N个数按照从小到大的次序排列。多重循环多重循环循环结构程序设计循环结构程序设计开始CX←外循环次数DI←最后一个数的地址BX←0取BX位置上的数到AL与后一数比较大于小于交换两数位置BX←BX+1是否为最后的数?NYCX←CX-1结束CX==0?YNAADATASEGMENTAddrDBNDUP(?)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,4CHINT21HCODEENDSENDSTARTMOVAX,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=$-BUFBUF1DBNDUP(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((11)若)若DWDW定义定义BUFBUF怎样修改?怎样修改?((22)能改为条件控制循环吗?)能改为条件控制循环吗?程序设计过程中常常把多次引用的相同程序段编成一个独立的程序段,当需要执行这个程序段时,用调用指令(CALL)调用该程序段即可。具有这种独立功能的程序段称为过程或子程序。子程序设计子程序设计适合编成子程...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部