- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 子程序和库 假设现有目标文件sub1.obj、sub2.obj和sub3.obj,要用它们建立库文件mylib.lib。可用下列方法来建立该库文件: 方法1:所有目标文件都准备好了,可一次性把它们加入到库文件中 …lib mylib +sub1 +sub2 +sub3 方法2:随着目标文件的逐个生成,而依次把它们加入到库文件中 …lib mylib +sub1 …lib mylib +sub2 …lib mylib +sub3 假如源文件sub3.asm已修改,并也生成了新的目标文件sub3.obj,这时,可用下面命令来实现替换: …lib mylib -+sub3 当提示目标库文件名(Output library)时,可按“回车”用默认的原库文件名。 如果想查看库文件mylib.lib中文件的大小和存放的先后次序,可用下列命令: …lib mylib, list ;把库文件mylib.lib中的文件结构生成到文件list中 …type list 7.6.2 建立库文件举例 第7章 子程序和库 当开发一个功能较强、关系较复杂的应用程序时,其执行文件常常由多个目标文件(模块)连接而成的。各模块之间无疑会存在着相互调用、相互访问数据单元等内在联系。 为了解决描述各模块之间的联系,汇编语言提供了二条伪指令PUBLIC和EXTRN,它们的作用说明变量、过程和函数是“全局的”或“外部的”。 这二条伪指令的具体用法和含义如下: 1. 伪指令PUBLIC 伪指令PUBLIC是用来说明:当前模块中哪些标识符是能被其它模块引用的公共标识符。其说明的一般格式如下: PUBLIC 标识符1, 标识符2, …… 其中:“标识符”可以是变量名、过程名和程序标号,标识符之间要用逗号分开。 上面说明语句说明了标识符1、标识符2等是公共标识符,可以被其它模块引用。在一个模块中,可用多条PUBLIC伪指令来说明公共标识符。 7.6.3 库文件的应用 第7章 子程序和库 2. 伪指令EXTRN 伪指令EXTRN是用来说明:在当前模块所使用的标识符中,哪些标识符是已在其它模块中被定义为指定类型的标识符。如果当前模块使用了其它模块的标识符,而对它又不加以说明的话,那么,汇编程序将会给出下列出错信息: error nnnnn: undefined symbol : XXXXXX 伪指令EXTRN的一般说明格式如下: EXTRN 标识符1:类型1, 标识符2:类型2, …… 其中:“标识符”和“类型”之间要用冒号“:”连接。 上面语句说明了标识符1、标识符2等是外部标识符,它们在其它模块中已被分别定义为类型1、类型2等,该类型说明符可以是:NEAR、FAR、BYTE、WORD、DWORD等之一。 在一个模块中,可用多条EXTRN伪指令来说明本模块所引用的外部标识符。 注意:伪指令EXTRN中所说明的标识符必须在其定义的模块中被PUBLIC伪指令说明为公共标识符,并且其说明的标识符类型要与该标识符在定义是的类型相一致,否则,要么不能生成其可执行文件,要么其执行文件不能正确运行。 第7章 子程序和库 定义子程序的一般格式如下: 子程序名 PROC [NEAR | FAR] … ;子程序体 子程序名 ENDP 对子程序定义的具体规定如下: 7.1 子程序的定义 “子程序名”必须是一个合法的标识符,并前后二者要一致; PROC和ENDP必须是成对出现的关键字,表示子程序定义开始和结束; 子程序的类型有近(NEAR)、远(FAR)之分,其缺省的类型是近类型; NEAR类型的子程序只能被与其同段的程序所调用,FAR类型的子程序可被不同段的程序所调用; 子程序至少要有一条返回指令。返回指令是子程序的出口语句,但它不一定是子程序的最后一条语句; 子程序名有三个属性:段值、偏移量和类型。其段值和偏移量对应于子程序的入口地址,其类型就是该子程序的类型。 第7章 子程序和库 在编写子程序时,除了要考虑实现子程序功能的方法,还要养成书写子程序说明信息的好习惯。其说明信息一般包括以下几方面内容: 功能描述 入口和出口参数 所用寄存器 ;可选项,最好采用寄存器的保护和恢复方法 所用额外存储单元 ;可选项,可以减少为子程序定义自己的局部变量 子程序的所采用的算法 ;可选项,如果算法简单,可以不写 调用时的注意事项 ;可选项,尽量避免除入口参数外还有其它的要求 子程序的编写者 ;可选项,为将来的维护提供信息 子程序的编写日期 ;可选项,用于确定程序是否是最新版本 这些说明性信息虽然不是子程序功能
您可能关注的文档
- 第2章(2.1-2.2)-基本数据与表达式.ppt
- 第6章_程序控制指令.ppt
- 第七单元进排气系统及排放控制系统.ppt
- 第三讲_K线图的使用.ppt
- 土建造价员识图教学.ppt
- 第4章 4.2 4.2.2 第1课时 用列表法求概率.ppt
- 保险龙卷风之组织发展篇.ppt
- 宏观经济学_高鸿业.ppt
- 极速互联苏瑞——电子商务安全技术第一讲.ppt
- 简便脊椎放松操【多媒体动画】.ppt
- 案例抓取志指南guidance for catching log by pcPC.pdf
- sigma-o共8 aldrich安全数据表.pdf
- 须英文西牙文法文审查以确保准确性清晰度一致性认证正式zealand.pdf
- 机械设计课设制图zdd5a.pdf
- 案例mr名称schuelein部门csps 23 magnetom m601.pdf
- ccmt2016-4号展机智能刚性攻丝.pptx
- 葡萄糖膳食补充剂1339 glucosamine tablets1338.pdf
- 数据简报间手术好消息159bmj h4060 full.pdf
- 模拟电子设计四次作业homework4.pdf
- sigma-k共7 aldrich安全数据表.pdf
最近下载
- 年会语言类节目搞笑朗诵《我爱上班》表演.pptx
- 《马克思主义基本原理概论》教案12 资本主义的本质及规律.doc VIP
- 55种语言汉译译音表-世界人名翻译大辞典.pdf
- 我们的母亲叫中国:.pptx VIP
- 1.6+隋唐时期的中外文化交流++课件++2024-2025学年统编版七年级历史下册+.pptx VIP
- 水稻绿色高产高效创建服务 投标方案(技术方案).docx
- 医用氧自检检查记录表.pdf
- 2024辽宁沈阳市文体旅产业发展集团有限公司中层岗位招聘5人笔试备考试题及答案解析.docx
- 《国际经济法学》(第二版)课后思考题答案.pdf
- 55个单病种(术种)管理指标质量控制标准(第二部分).xlsx
文档评论(0)