欢迎来到天天文库
浏览记录
ID:39778781
大小:252.31 KB
页数:29页
时间:2019-07-11
《汇编语言程序设计》-相伟-电子教案第10章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、21世纪高等院校规划教材汇编语言程序设计相伟主编徐小平李珍香副主编中国水利水电出版社第十章模块化程序设计本章学习目标通过本章学习,读者应该掌握以下内容:模块的概念及设计模块之间的通信模块化程序设计方法10.1概述模块化程序设计是大型程序设计的常用方法,它是指按照要实现的功能把一个大型程序划分成多个模块,每个模块完成一个子功能,然后按模块来分配设计人员,由设计人员编制和调试各个模块程序,最后再把它们按照一定的调用关系组合起来,完成指定的功能。从汇编语言源程序的角度来看,一个模块就是一个以END语句作为结束标志的源程序。模块的划分与设
2、计可参考如下规则:①一个模块既不能过大,也不能过小。过大则模块的通用性较差,过小则会造成时间和空间上的浪费。②力求使模块具有通用性,通用性越强的模块利用率越高。③各模块间就在功能上、逻辑上相互独立,特别应避免用转移语句在模块间转来转去。④模块间的接口应该简单,要尽量减少公共符号的个数,尽量不共用数据存储单元。采用模块化程序设计的优点:①容易把复杂的问题分解成一系列简单问题,便于解决实际问题。②单个模块容易编写、查错、调试。③单个模块容易重复使用,对一些经典模块可以编写成标准模块供以后使用。④程序员可以直接利用现有的模块,提高工作效率
3、。⑤软件运行之后的维护方便。10.2模块命名与装配在模块化程序设计中,一个程序通常由一个主模块和一个或多个子模块构成,当编写完所有模块的汇编语言源程序后,宏汇编程序需要对包括主模块在内的所有模块的源程序进行单独汇编,生成主模块的目标文件和各个子模块的目标文件,然后由连接程序将主模块和所有子模块的目标文件连接在一起构成一个可执行文件。1.模块命名伪指令格式:NAME模块名功能:给一个模块命名。通常作为一个模块的第一条指令。2.段定义伪指令段名SEGMENT[定位属性][组合属性][‘类别’]┇段名ENDS功能:定义程序中的一个逻辑段,
4、并指定该逻辑段的属性。①定位属性定位属性是对该段的起始地址所提出的要求,即告诉连接程序,在将各个段装配在一起时,前一个段安排完后,下一个段将从一个什么样的地址开始存放。定位属性是规定好的,它们是:[PARA]、WORD、BYTE、PAGE,分别称为节地址、字地址、字节地址、页地址。各个定位属性的意义如下:[PARA]节地址。表示该段的存放开始地址是物理地址的最低4位为0的地址。定位属性省略时,表示PARA。在前面的例题中,程序中多数逻辑段的定位属性都被省略,说明采用了PARA属性。WORD字地址。表示该段的存放开始地址是物理地址的最
5、低1位为0的地址。BYTE字节地址。表示该段的存放开始地址可以是任何物理地址。PAGE页地址。表示该段的存放开始地址是物理地址的最低8位为0的地址。②组合属性组合属性用于向连接程序提供本段同其它段在连接时的组合关系。组合属性也是规定好的,有以下几种属性供选择,它们是:[NONE]、PUBLIC、COMMON、AT表达式、STACK、MEMORY。各个组合属性的意义如下:[NONE]表示本段与其它段逻辑上不发生关连,尽管在物理地址上可能相邻,但每个段都有自己的段首址,这是隐含的组合属性,可以省略。在前面学过的例题中,多采用这种组合属性
6、。PUBLIC表示应将本段与其它模块中的同名、同‘类别’段按各模块连接的顺序相邻地连接在一起,组成一个物理段,但该段大小不能超过64K。一般情况下,各个模块的数据段、代码段都分别定义成同名、同‘类别’且组合属性为PUBLIC的段,以便使连接后生成的文件只有一个数据段、一个代码段。STACK与PUBLIC一样,表示本段与其它模块中的同名、同‘类别’段按各模块连接的顺序相邻地连接在一起,组成一个物理段,该段大小也不能超过64K。但与PUBLIC不同的是,该段作为堆栈段。一般情况下,各个模块的堆栈段也都定义成同名、同‘类别’且组合属性为S
7、TACK的段,以便使连接后生成的文件只有一个堆栈段。COMMON连接程序为本段和同名、同‘类别’的其他段指定相同的段地址,即将本段与这些段相覆盖,段的长度取决于最长的具有COMMON属性的段的长度。AT表达式连接程序将把本段装在表达式的值所指定的段地址上。使用这个组合属性可以很方便地实现在某一固定存储区(如ROM区或中断向量区)内的固定偏移地址处定义标号或变量,这样源程序就能以标号和变量的形式访问这些固定的存储单元。MEMORY:连接程序将本段定位在被连接在一起的其它所有段之上(即安排在最高地址上)。如果有几个段都选择MEMORY组
8、合属性,则宏汇编程序将把遇到的第一段处理为MEMORY段,而其它段都被处理为COMMON段。③‘类别’属性段名的‘类别’属性用于连接程序在装配时安排各个段的存放顺序。它是用单引号括起来的字符串,该字符串可以包括任何合法的字符。连接程序
此文档下载收益归作者所有