第4单元4循环子程序DOS中断调用.pptVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4单元4循环子程序DOS中断调用

第四章 汇编语言程序设计 汇编语言程序设计概述 汇编语言基本语法 汇编语言程序设计 BIOS及DOS功能调用 汇编语言程序设计实例 在程序中重复执行相同功能的一段代码,可用循环程序实现。循环程序通常由五部分组成: 初始化部分——为程序操作、地址指针、循环计数、结束条件等设置初始值。 循环工作部分——循环程序主体,完成基本操作。 循环修改部分——修改循环工作部分的变量,为重复操作做准备。 循环控制部分——修改计数器或判断循环结束条件,决定是否终止循环。 循 环 体 循环结束部分——循环终止后,对循环结果的处理部分。 循环结构程序设计 循环程序概述 终 止 起 始 初始化 循环工作 循环修改 循环控制 完 未完 终 止 起 始 初始化 循环工作 循环修改 循环控制 完 未完 先执行后判断 先判断后执行 循环程序基本结构 循环结构程序设计 未完 终 止 起 始 初始化 循环工作 循环修改 循环控制 完 计数循环——重复次数已知,用计数值控制循环的开始与终止。 条件控制循环——重复次数未知或不确定,需找出循环控制的条件。 解: 已知循环次数,采用计数循环控制。程序段如下: MOV CX,100 ;确定循环计数器值 MOV BX,1 ;确定循环初值 MOV AX,0 ;和的初值 LOP: ADD AX,BX INC BX LOOP LOP ;循环控制 【例】 编写程序计算C=1+2+3+4+……+100 循环控制方式 循环结构程序设计 计数循环的常见方法: 减1循环 MOV CX,N L : …… DEC CX JNZ L 加1循环 MOV CX,-N L: …… INC CX JNZ L LOOP 短标号 MOV CX,N L: …… …… LOOP L 解:无法确定循环次数,采用条件循环控制。程序段如下: MOV SI,OFFSET ORGSTRIN ;读源串地址 MOV DI,OFFSET DESSTRIN ;读目的串地址 LOP: MOV AL,[SI] MOV [DI],AL INC SI ;循环修改 INC DI CMP AL,‘$’ JNZ LOP ;循环控制 【例】 将一个字符串拷贝到另一个存储区中,直到拷贝到字符“$”结束。 循环体中又有循环称多重循环。在多重循环程序设计时,应分别考虑每重循环的控制条件。通常内层循环要受外层循环的控制。 解:采用冒泡排序法,从第一个数开始依次对相邻的两个数进行比较,如果次序正确则不做任何操作,如果次序不正确则将此两个数交换位置。 【例】 在首地址为Addr的存储单元中有N个数,编程序将此N个数按照从小到大的次序排列。 多重循环 循环结构程序设计 开 始 CX←外循环次数 DI←最后一个数的地址 BX←0 取BX位置上的数到AL 与后一数比较 大于 小于 交换两数位置 BX←BX+1 是否为最后的数? N Y CX←CX-1 结 束 CX==0? Y N A A DATA SEGMENT Addr DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,N DEC CX LOOPl: MOV DI,CX ;设置外循环次数 MOV BX,0 ;设置内循环条件 LOOP2: MOV AL,Addr[BX] CMP AL,Addr[BX+1] JL CONT XCHG AL,Addr[BX+1] ;让大的数向地址高处移动 MOV Addr[BX],AL CONT: INC BX CMP BX,DI ;内循环判断 JB LOOP2 LOOP LOOP1 ;外循环控制条件 MOV AH,4CH INT 21H CODE ENDS END START MOV AX,3578H MOV CL,0 L: OR AX,AX ;判断AX是否为0 JZ EXIT ;AX=0结束 SHL AX,1 ;最高位进CF JNC L INC CL JMP L EXIT: INT 20H 【例】统计A

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档