- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第十一章 模块化程序设计技术 第十一章 模块化程序设计技术 11.1 模块化程序设计 11.2 汇编语言与高级语言的连接 习题十一 11.1 模块化程序设计 11.1.1 与模块化程序设计有关的伪指令 进行模块化程序设计时,各程序模块间的连接信息由程序段伪指令进行说明, 这些伪指令有: 1. 公用标号说明伪指令PUBLIC PUBLIC伪指令的格式为: PUBLIC LABEL1[, LABEL2, LABEL3…] 其中, LABEL1、 LABEL2、LABEL3…是在本模块内定义的、可被连接在一起的其它程序模块使用。 2. 外部标号说明伪指令EXTRN EXTRN伪指令的格式为:EXTRN LABEL1: TYPE[, LABEL2: TYPE, LABEL3: TYPE…] 其中,LABEL1、 LABEL2、LABEL3…是在与本模块连接在一起的其它模块中已经用PUBLIC伪指令说明过的标识符,TYPE是标识符的类型。如果为符号变量,则TYPE的取值应为byte、 word或dword;如果为标号或过程名,则其取值应为near或far。 要想在本模块中使用其它模块中定义的标识符,必须在本模块中使用EXTRN伪指令进行说明,而且,这些标识符还必须在其它模块中用PUBLIC伪指令说明过,否则就会产生错误。 PUBLIC与EXTRN伪指令必须放在各模块源程序的最前面。 3. 包含伪指令INCLUDE INCLUDE伪指令格式: INCLUDE [path]filename 其中, filename是其它源程序模块的文件名,它可以放在源文件的任何位置,汇编时,此源文件所产生的目标代码就放在此位置。如果INCLUDE后的文件名不在当前缺省目录下, 则可由[path]给出此文件的路径。 11.1.2 程序模块的生成 (1) 程序功能描述: 正确描述整个程序需要完成的功能。 (2) 任务模块划分:根据程序的总体功能将程序分成若干功能相对独立的任务模块,确切定义各模块应完成的任务及各任务之间进行通信的方法,写出详细的模块说明。 (3) 编程调试:根据各任务模块的功能要求编写程序模块, 并进行功能调试。 (4)总体调试:将各任务模块的目标代码连接在一起形成一个程序并进行总体调试。 (5)形成设计文档:将各模块的源程序及其说明合在一起形成设计文档。 1. 多模块程序的汇编 进行模块化程序设计时,模块的汇编、连接分两种情况。 第一,各模块独立编制源程序,然后用INCLUDE语句将要连在一起的源程序文件插入到主程序模块中, 再由汇编程序将各模块汇编成一个完整的目标代码程序(.OBJ),此后,由连接程序(LINK)进行连接,形成可执行文件。 严格来讲, 这种情况并不是真正的模块化程序设计,而仅仅是将一个大的源文件分成若干功能相对独立的小的源文件,程序的汇编、 连接与普通程序设计的过程相同。第二,各模块独立编制源程序、独立汇编和调试, 待调试正确后, 再生成目标代码文件,而后由连接程序将各目标代码文件连接在一起,形成可执行文件。 随后我们讨论这种情况的多模块程序设计。 2. 多模块程序的连接 进行模块化程序设计时,在规定了各模块功能以及各模块相互之间的连接约定后,就可以独立编写、调试各模块源程序。 多个程序模块相连接时,并不需要将所有的代码段和数据段等连接在一起构成一个大的代码段或数据段。在大多数情况下, 各程序模块仍然使用自己的分段,通过模块之间的相互调用来进行工作。若有些程序模块需要连接在同一段内,则需要程序设计人员在编制源程序模块时设定。 编制源程序模块应注意: ·各源程序模块要设置的段基址,至少要设置一个代码段(其它段根据需要设置)。 ·根据对各段在内存中存放的具体要求,给出SEGMENT伪指令后的组合类型和类别,详见SEGMENT伪指令。 3. 多个模块间的变量传送问题 在模块化程序设计中,各模块之间的变量传送可通过公共数据段和外部符号两种方法进行,下面分别举例说明: (1) 使用公共数据段。 在数据段中利用COMMOM类型将所有变量合并成一个覆盖段,这样所有模块使用的实际上是本模块中的变量,不需要做特殊处理。 在例11.1中采用公共数据段的方法来传递变量,要注意由于子程序与主程序不在
您可能关注的文档
- Oracle数据库应用与开发案例教程电子教案王红 12.第十二章 Oracle企业管理器OEM.ppt
- Oracle数据库应用与开发案例教程电子教案王红 13.第十三章 软件开发综合实训复.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 11120+Oracle数据库原理与应用姚世军.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第1章 数据库基础知识.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第2章 Oracle实例.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第3章 数据库存储结构.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第4章 Oracle网络结构与管理.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第5章 SQL工具与SQL语言基础.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第6章 数据库管理.ppt
- Oracle数据库原理与应用 教学课件 作者 姚世军 第7章 数据库结构管理.ppt
- 2025甘肃省建设投资(控股)集团有限公司招聘笔试历年参考题库附带答案详解.pdf
- 2025浙江台州市人力资源开发有限公司招聘劳务派遣制员工4人笔试历年参考题库附带答案详解.pdf
- 2025重庆川渝携手75家重点行业企事业单位招聘1283人笔试历年参考题库附带答案详解.pdf
- 2025中国雄安集团生态建设公司基础建设公司招聘25人(河北)笔试历年参考题库附带答案详解.pdf
- 2025湖北武汉地铁集团社会招聘2人笔试历年参考题库附带答案详解.pdf
- 2025榆阳区司法局选聘专职人民调解员笔试历年参考题库附带答案详解.pdf
- 2025大唐移动通信设备有限公司招聘55人笔试历年参考题库附带答案详解.pdf
- 2025年国家能源集团龙源电力甘肃公司试笔试历年参考题库附带答案详解.pdf
- 2025年山东潍坊市寿光市高新区基础设施开发有限公司招聘考察笔试历年参考题库附带答案详解.pdf
- 2025华阳集团太原化工新材料有限公司招聘100人笔试历年参考题库附带答案详解.pdf
最近下载
- 光伏安全课件.pptx
- 山香教育(教育学、心理学、教育心理学及新课改、教育法律法规等).pdf
- 新解读《GB_T 39851.2-2021道路车辆 基于控制器局域网的诊断通信 第2部分:传输层协议和网络层服务》最新解读.pptx VIP
- 二类精神药品培训.pptx VIP
- 2025年武汉黄陂区面向社会公开招聘社区干事50人备考试题及答案解析.docx VIP
- 第11课《短文二篇——答谢中书书》课件 2024—2025学年统编版语文八年级上册(共33张PPT).pptx VIP
- 春节文化PPT展示.ppt VIP
- 道教掷茭(圣杯)二十八签详解.doc VIP
- 75吨循化流化床炉施工方案.doc VIP
- 课程思政方案综合布线设计与实施.docx VIP
文档评论(0)