目录 上一页 下一页 附录A

第11章 更高级的技术 -327-

module1.
data

num1
num2
data
......
asm
segment
assume
dw
dw
ends


para COMMON 'data'
ds:data
?
?


module2.
data

num1
num2
data
......
asm
segment
assume
dw
dw
ends


para COMMON 'data'
ds:data
2
5


  由于两个模块中的DATA段都是"COMMON"类型的,所以这两个模块在连接的时候模块1中的DATA段会被模块2中的DATA段"覆盖"。因此虽然模块1的数据段中有两个字的数据,模块2的数据段内也有两个字,但是最终生成的可执行文件中只有一个数据段且其中只有两个字,而不是有四个字。
  正是由于"覆盖"的关系,所以模块1中的num1与模块2中的num1实际是在内存同一地址处,所以在模块1中引用num1就等于引用了模块2中的num1。这样就形成了数据共享的关系。
  以上介绍的是模块化程序设计技术中最基本的内容,实际上模块化程序设计技术中还有两个重点内容:第一是汇编子程序库的建立与维护;第二是汇编语言与高级语言的联合编程。限于篇幅,有关这两方面的内容本书不再介绍。
  本章结束语
  本章对于程序设计技术所进行的讨论是很简单的,并不十分全面。有些重要的内容,如TSR程序的设计技巧我们没有进行更多的研究,实际上单单是TSR程序的设计技巧就足以写一本书来讲述。笔者在这最后一章内只是很初步地给大家开了个头儿,更深入的内容还要读者自己去探索。想学会一种本领不容易,想学精一种本领就更难了,探索是永无止境的。












① LINK程序最后提示大家输入一个扩展名为LIB的文件,这类文件就是子程序库文件。

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 附录A