第8章 子程序设计课件.pptVIP

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

第8章 子程序设计 ;8.1 子程序的基本概念;一般子程序具备如下几个特性: 重复性 通用性 浮动性 模块化 为方便用户编程,经常将一些通用的子程序事先编好,组成一个子程序库,并作为计算机系统软件的一部分提供给用户使用,这样的子程序称为标准子程序。当用户需要使用某个标准子程序时,只要按照系统规定的调用方式对它调用即可。此外,用户还可建立自己的子程序库。;调用子程序的程序称为主程序。 子程序的特点:可以简化程序结构,提高执行效率。每个子程序在编译后只产生一次目标代码,从而提高了运行效率。;8.2 子程序定义;8.3 子程序的调用与返回 ;8.3.1 子程序的调用指令(CALL);子程序调用指令并不影响任何标志位,但子程序中的指令可以改变标志位。如果希望子程序调用前后的标志位不变,则在子程序调用前保护标志位,而子程序返回后恢复标志位。 例: … PUSHF ;保护现场 CALL SI POPF ;恢复现场 …;8.3.2 子程序的返回指令(RET);8.4 编写子程序的基本要求;8.5 子程序的参数传递方法;例、 设ARRAY是一个含有10个元素的数组,每个元素都是占用一字节。试用子程序计算他们的“累加和”。(注:为了简化程序设计,以下程序中的“累加和”是指不记进位的累加)。;STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT ARRAY DB 12H,36H,48H,5,17H,29H,8,26H,59H,35H COUNT = $-ARRAY RESULT DB ? ;存放累加和 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV BX,OFFSET ARRAY;数组的偏移地址→BX MOV CX,COUNT ;数组元素个数→CX CALL P_SUM ;调用求和子程序 MOV RESULT,AL ;(AL)→RESULT MOV AH,4CH INT 21H;;子程序名:P_SUM ;功能:计算数组元素的累加和 P_SUM PROC XOR AL,AL ;累加器清0 SUM: ADD AL,[BX] ;求和 INC BX ;指向下一字节 LOOP SUM ;(CX)≠0转SUM继续求和 RET P_SUM ENDP CODE ENDS END BEGIN;8.6 子程序的嵌套与递归;8.7 多模块的连接;8.7.1 模块化设计原则;模块化程序设计的难题是:如何把程序分成模块,然后再如何装配起来。 ??块化程序设计的关键是模块的划分,层次图和模块说明是模块划分的主要描述工具。 层次图是一个方块图,用来表示模块与模块之间的调用关系,如图所示。 模块说明是模块功能的文字描述,主要包括模块的功能、所用基本算法、入口参数、出口参数、所调用到的其它模块、调用注意事项等信息。;炎纺靳雌份逆稿檬油仓冀羽等洞舷文养滥恼侨寅靴簇州用将阐嗽死棍硝肉第8章 子程序设计课件第8章 子程序设计课件;模块的划分无固定的规则,应视情况灵活确定,但应遵循如下基本原则: 模块间的调用关系尽可能简单。尽量避免从多个入口点进入模块或从多个出口点退出,否则模块不易调试。 模块间的数据耦合应尽量小,即尽量减少数据传递,对于需要传递参数个数较多的模块,可考虑合并成一个模块。 模块的大小适中,一般长度在50至500行为宜。若模块太大,则会大大增加编写和调试的难度;若太小,模块间的调用、连接开销则相对太大。;8.7.2 伪指令PUBLIC与EXTRN;1.说明公共符号PUBLIC;2.说明外部符号EXTRN;8.7.3 多模块的程序举例;模块A: EXTRN DISP:NEAR ;说明外部符号 CODE SEGMENT ASSUME CS:CODE START: CALL DISP MOV AH,4CH INT 21H CODE ENDS END START ;模块B: PUBLIC DISP ;说明公共符号 CODE SEGMENT ASSUME CS:CODE DISP PROC NEAR MOV DL,A MOV AH,2 INT 21H RET DISP ENDP CODE ENDS END;假设模块A存盘后文件名为A.ASM,模块B存盘后文件名为B.ASM,则可用以下命令行分别汇编,然后链接合并。 MASM A; MASM B; LINK A+B; 最后

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档