![]() | 第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 |