3.3. NASM

Netwide Assembler 项目提供了一个很棒的 i386 汇编器,用 C 语言编写,它应该足够模块化,最终能够支持所有已知的语法和对象格式。

3.3.1. 在哪里可以找到 NASM

http://www.nasm.us, http://sourceforge.net/projects/nasm/

二进制版本在您常用的 metalab 镜像站的devel/lang/asm/目录中。 应该也可以作为.rpm或者.deb在您常用的 Linux 发行版中提供。

3.3.2. 它的功能

语法是 Intel 风格。 综合的宏处理支持已集成。

支持的对象文件格式有bin, aout, coff, elf, as86, obj(DOS),win32, rdf(它们自己的格式)。

NASM 可以用作免费的 LCC 编译器的后端(包含支持文件)。

除非您将 BCC 用作 16 位编译器(这超出了本 32 位 HOWTO 的范围),否则您绝对应该使用 NASM 而不是例如 AS86 或 MASM,因为它可以在所有平台上运行。

Note

NASM 自带一个反汇编器,NDISASM。

它手写的解析器使其比 GAS 快得多,当然,它不支持无数种不同的架构。 如果您喜欢 Intel 风格的语法,而不是 GAS 语法,那么它应该是您的首选汇编器……

注意:有一些程序可以帮助您在 AT&T 和 Intel 汇编器语法之间转换源代码; 其中一些程序能够执行双向转换。