2.2.5 我们的选择——MASM32软件包
读者可能会感到奇怪,怎么又出来一个MASM32,这是什么公司的产品呢?实际上,MASM32是不同工具软件的大集合,它的汇编编译器用的是MASM软件包中的Ml.exe,资源编译器和32位链接器使用的是Microsoft Visual Studio中的Rc.exe和Link.exe,同时包含了Microsoft Visual Studio中的其他一些工具,如Lib.exe和DumpPe.exe等,所有的工具都是适合于Win32编程的版本。
同时,MASM32软件包包括了详尽的头文件和导入库文件,导入库文件取自Visual C++的导入库,规模庞大的头文件则是发布者整理的,软件包中还包括了很多的例子,涉及Win32汇编的很多方面,例子收集自世界各地Win32汇编爱好者发布的源程序。为了使工具包更实用,发布者还为它编写了一个简单的IDE环境,包括一个专用的汇编源程序编辑器和源程序模板生成器等。
MASM32软件包使汇编不再只用来编写简单的程序和少量的核心模块,它的目标完全是为了用汇编写出专业的大型程序。虽然它是一个大杂烩,但发布者做了所有汇编程序员都想做、却又在庞大的工程量前止步的工作——收集合适的工具软件、收集导入库、整理出完整的头文件、收集例子文件、写帮助文档……
让我们感谢发布者Steve Hutchesson为所有的Win32汇编程序员所做的这一切。
迄今为止,MASM32的最高版本是MASM32V8,与早一些的MASM32V7和MASM32V6版本相比,使用的编译器等可执行文件并没有什么改变,不同的地方是在头文件中增补了一些数据结构定义和增加了不少例子程序。最新版本的MASM32软件包可以在发布者的主页http://www.movsd.com中下载。MASM32是一个免费的软件包,但其中的不同部分如编译器和例子程序等可能属于不同的公司和个人,使用时需要遵从他们的版权声明。
MASM32的安装界面如图2.2所示。
安装MASM32时,在选择目标驱动器后,工具包会被安装到根目录下的MASM32目录中。读者需要知道一些重要文件的位置,这在使用时非常重要,MASM32下各目录的列表和说明如表2.7所示。
表2.7 MASM32的目录说明
|
目 录 |
介 绍 |
|
\masm32 |
IDE环境、内带的文本编辑程序和模板生成程序等 |
|
\masm32\include |
所有的头文件,Windows.inc为数据结构和预定义值的定义文件,Resource.h为资源文件的头文件,其他 .inc文件为对应同名DLL文件中的API函数声明文件 |
|
\masm32\lib |
所有的导入库文件,每个.lib文件是对应DLL文件的导入库 |
|
\masm32\bin |
可执行文件目录,里面包括Ml.exe,Link.exe和Rc.exe等 |
|
\masm32\help |
帮助文件目录 |
|
\masm32\m32lib |
一些常用C子程序的汇编实现源程序,如熟悉的stdin和stdout等,有一定的参考价值 |
|
其他目录 |
主要为例子和可用可不用的小工具,例子广泛收集自网上不同作者的作品,很有参考价值 |
如果不用内带的IDE环境,不看附带的例子和帮助文件,那么有了bin,include和lib这三个目录中的内容,读者就可以进行Win32汇编编程了,其他目录中的文件仅起辅助作用。
本书的编程环境就是以MASM32软件包为基础的,事实上,现在MASM32已经是最流行的Win32汇编开发包,世界上大部分的Win32汇编程序员都用它来进行Win32软件开发。






