PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt

PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt

ID:51101282

大小:314.00 KB

页数:39页

时间:2020-03-18

PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt_第1页
PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt_第2页
PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt_第3页
PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt_第4页
PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt_第5页
资源描述:

《PC汇编语言程序设计课件 第11章 模块化程序设计技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章模块化程序设计技术11.1模块化程序设计11.2汇编语言与高级语言的连接习题十一11.1模块化程序设计11.1.1与模块化程序设计有关的伪指令进行模块化程序设计时,各程序模块间的连接信息由程序段伪指令进行说明,这些伪指令有:1.公用标号说明伪指令PUBLICPUBLIC伪指令的格式为:PUBLICLABEL1[,LABEL2,LABEL3…]其中,LABEL1、LABEL2、LABEL3…是在本模块内定义的、可被连接在一起的其它程序模块使用。2.外部标号说明伪指令EXTRNEXTRN伪指令的格式为:EXTRNLABEL1:TYPE[,LABEL2:

2、TYPE,LABEL3:TYPE…]其中,LABEL1、LABEL2、LABEL3…是在与本模块连接在一起的其它模块中已经用PUBLIC伪指令说明过的标识符,TYPE是标识符的类型。如果为符号变量,则TYPE的取值应为byte、word或dword;如果为标号或过程名,则其取值应为near或far。要想在本模块中使用其它模块中定义的标识符,必须在本模块中使用EXTRN伪指令进行说明,而且,这些标识符还必须在其它模块中用PUBLIC伪指令说明过,否则就会产生错误。PUBLIC与EXTRN伪指令必须放在各模块源程序的最前面。3.包含伪指令INCLUDEINCLUD

3、E伪指令格式:INCLUDE[path]filename其中,filename是其它源程序模块的文件名,它可以放在源文件的任何位置,汇编时,此源文件所产生的目标代码就放在此位置。如果INCLUDE后的文件名不在当前缺省目录下,则可由[path]给出此文件的路径。11.1.2程序模块的生成(1)程序功能描述:正确描述整个程序需要完成的功能。(2)任务模块划分:根据程序的总体功能将程序分成若干功能相对独立的任务模块,确切定义各模块应完成的任务及各任务之间进行通信的方法,写出详细的模块说明。(3)编程调试:根据各任务模块的功能要求编写程序模块,并进行功能调试。(4

4、)总体调试:将各任务模块的目标代码连接在一起形成一个程序并进行总体调试。(5)形成设计文档:将各模块的源程序及其说明合在一起形成设计文档。1.多模块程序的汇编进行模块化程序设计时,模块的汇编、连接分两种情况。第一,各模块独立编制源程序,然后用INCLUDE语句将要连在一起的源程序文件插入到主程序模块中,再由汇编程序将各模块汇编成一个完整的目标代码程序(.OBJ),此后,由连接程序(LINK)进行连接,形成可执行文件。严格来讲,这种情况并不是真正的模块化程序设计,而仅仅是将一个大的源文件分成若干功能相对独立的小的源文件,程序的汇编、连接与普通程序设计的过程相同。

5、第二,各模块独立编制源程序、独立汇编和调试,待调试正确后,再生成目标代码文件,而后由连接程序将各目标代码文件连接在一起,形成可执行文件。随后我们讨论这种情况的多模块程序设计。2.多模块程序的连接进行模块化程序设计时,在规定了各模块功能以及各模块相互之间的连接约定后,就可以独立编写、调试各模块源程序。多个程序模块相连接时,并不需要将所有的代码段和数据段等连接在一起构成一个大的代码段或数据段。在大多数情况下,各程序模块仍然使用自己的分段,通过模块之间的相互调用来进行工作。若有些程序模块需要连接在同一段内,则需要程序设计人员在编制源程序模块时设定。编制源程序模块应注意:

6、·各源程序模块要设置的段基址,至少要设置一个代码段(其它段根据需要设置)。·根据对各段在内存中存放的具体要求,给出SEGMENT伪指令后的组合类型和类别,详见SEGMENT伪指令。3.多个模块间的变量传送问题在模块化程序设计中,各模块之间的变量传送可通过公共数据段和外部符号两种方法进行,下面分别举例说明:(1)使用公共数据段。在数据段中利用COMMOM类型将所有变量合并成一个覆盖段,这样所有模块使用的实际上是本模块中的变量,不需要做特殊处理。在例11.1中采用公共数据段的方法来传递变量,要注意由于子程序与主程序不在同一程序模块内,对子程序的调用和定义必须使

7、用FAR类型,并且对子程序名要用PUBLIC、EXTRN宏指令加以说明。例11.1十进制数到十六进制数转换程序。从键盘输入一个十进制数(最大数为65535),然后把该数以十六进制数形式在屏幕上显示出来。本例采用多模块程序设计,一个子程序模块DECTOBIN实现从键盘输入十进制数并转换成二进制数;另一个子程序模块BINTOHEX在把二进制数以十六进制数的形式在屏幕上显示出来。源程序清单如下:;主程序模块原文件名为:BIN.ASMEXTRNDECTOBIN:FAREXTRNBINTOHEX:FARDATASEGMENTCOMMONMAXLENDB5ACTLE

8、NDB?

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。