经典汇编语言教程:7.6.3 库文件的应用举例
4490 点击·0 回帖
![]() | ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | 例7.7 把例7.3、7.4和7.5合并在一起生成一个可执行文件,假设它们所对应的源程序名分别为Count.ASM、DispBX.ASM和Main.ASM。 解:由于在源文件Count.ASM中调用了子程序UPPER,所以,例7.1的程序也必须加入到本题中。假设其源文件名为Upper.ASM。 由于生成本题的执行文件需要四个模块,模块之间存在着调用关系,所以,在有关源文件中需要说明某些标识符为外部属性,或说明其为公共属性。 为了把前面例子中的子程序改写成可汇编的程序,需要添加一些简单的说明语句或进行简单修改,其添加或改写的部分已在下面用“下划线”表示出来。
经过以上改写后,可用下列命令把它们分别汇编成目标文件(假设已安装了MASM编程环境): …>MASM upper …>MASM dispbx …>MASM count …>MASM main 有了这些目标文件后,可用以下二种方法来生成可执行文件。 方法1:把所有的目标文件连接在一起 …>link main+upper+count+dispbx 方法2:把目标文件upper.obj、count.obj和dispbx.obj加到自己开发的库文件中,然后在连接时,与该库文件连接。 …>lib mylib +upper +count +dispbx …>link main Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992 Copyright (C) Microsoft Corp 1984-1992. All rights reserved. Run File [main.exe]: List File [nul.map]: Libraries [.lib]:mylib ;输入要连接的库文件,可用加号“+”连接多个库文件 Definitions File [nul.def]: LINK : warning L4021: no stack segment …>main ;运行生成的文件 以上各步骤也可由集成开发环境PWB来完成,具体介绍请见附录1。另外,当模块的指令条数较少时,也可以把几个子模块合在一个源文件中。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ![]() |