2.2.3 其他编译器
除了MASM和TASM这两种主流的汇编编译器,汇编编程中还可以用到一些其他的编译器,这些编译器大部分是免费的,如表2.6所示。
表2.6 常用汇编编译器列表
|
编 译 器 |
简 介 |
支 持 编 程 |
|
|
NASM |
Netwide/National Assembler,开放源代码的免费软件,使用传统的Intel语法 |
DOS,Win32,Linux |
|
|
FASM |
支持8086-80486/Pentium/MMX/SSE/SSE2指令,16/32位代码 |
DOS,Win32 |
|
|
SpAsm |
Specific Assembler,用于ReactOS/Win32的汇编编译器,有简化的语法和宏指令,自带IDE环境 |
Win32 |
|
|
VisualASM |
附带IDE环境 |
Win32 |
|
|
Pass32 |
支持面很广的编译器,一个显著的特点是支持DOS extender,可以直接将DOS extender链接到可执行文件中 |
DOS,Win32,DOS DPMI |
|
|
GASM |
GNU Assembler,兼容NASM,可以用于DOS下的保护模式编程 |
DOS |
|
|
Nbasm |
NewBASIC++ Assembler,适合于建立小规模的汇编程序,用来学习汇编是很不错的 |
DOS |
|
|
CHASM |
Cheap Assembler,用于MS-DOS编程的共享软件 |
DOS |
|
值得一提的是NASM,这个编译器也支持Win32汇编,不同于MASM和TASM这两个编译器,它是免费软件并且开放源代码,如果读者对编译器的原理感兴趣的话,可以从网上下载整个NASM的软件包来看一看,NASM的官方站点网址是http://nasm.octium.net。
NASM不具有MASM和TASM所拥有的一些高级语法,如将带参数的调用语句自动转化成多个push指令和一个call指令,更没有MASM所有的 .if/.endif等高级语法,这使NASM用于Win32编程相当不方便,整个感觉和用MASM 4.0差不多,几乎所有的细节都需要用户自己写。但NASM的一个显著优点部分地抵消了这个缺点,因为它支持不同的平台,如Windows,Linux和OS/2等,用它写Win32程序虽然有些麻烦,但熟悉了它的语法后可以很快在Linux的汇编中上手,所以使用NASM的程序员还是不少。






