NASM网际编译器手册(二)

1.1 什么是NASM?
网际汇编器,NASM是一个模块化和便携性的80x86汇编编译器。它支持多种目标格式包含Linux的a.out
,ELF,NetBSD/FreeBSD,COFF,Microsoft的16位OBJ和Win32。 它输出平坦模式的二进制文件。
它在语法设计上简单且容易理解,和Intel的相似但没有那么复杂。 它支持Pentium,P6和MMX操作码,
并且宏操作方面兼容。


1.1.1 为什么不用其它编译器?
网际编译器是在基于comp.lang.asm.x86(也可能是alt.lang.asm我记不清了)上的思想成长
起来的。它在本质上不象周围很好的自由x86系列编译器, 并且应有人写一个。
a86是比较好的, 但并不免费,通常你不能得到任何32位兼容的除非你付费。 它只支持DOS。
gas是免费的, 并且适应于DOS和Unix, 但它不是很好用, 由于它被设计成相对于gcc的后端,
所以必须给它输入一些正确的密码。 导致它的错误检查是很小。 因此, 从这方面来看待和
真正写些代码来说,它的语法是很难懂的。 另外你不能用它写16位代码(正常情况下)。
as86是Linux专用的, 并且有很多文档(至少对我来说)。
MASM不是很好用, 它太贵了, 并且只能在DOS下运行。
TASM好一些, 但仍在和MASM相兼容, 意味着将会有不计其数的指令的官文。 它的语法本质上
和MASM相同。 但它也很贵。 只在DOS下运行。
因此, 这里为了编码的快乐,用NASM。现在它仍然处理试验阶段-我不能保证它这些编译器好,但请向我
们报告程序中的问题,修改意见及帮助信息, 和任何你现有的信息。 (感谢很多人会这样做, 你知道
你也会) , 我们将不断的发展它。

1.1.2 软件许可协议
请查看许可协议文件,做为NASM描述档案的一部分提供, 你可以在许可协议下使用NASM。

1.2 联系方式
当前版本的NASM(从0.98)是由H.Peter Anvin()维护的。
如果你想报告任何程序问题, 请先读一下第10.2节.
NASM有一个网页为:htt//www.cryogen.com/Nasm.
原始作者可邮寄电子信箱: 和

最新版本的NASM已经上传到和.
通告将发布在 comp.lang.asm.x86,alt.lang.asm,comp.os.linux.announce和
comp.archives.msdos.announce(最后一个将自动传到上)
如果你没有新闻组可以访问,或者更喜欢用电子邮件进行交流,你可以发送一行包含
subscribe nasm-announce的内容的邮件到.
如果你想了解NASM beta版的有关信息,请发送一封含有subscribe nasm-beta信息的电子邮件到
http://www.pop417.com/bbs/mailtmajordomo@linux.kernel.org.

1.3安装


1.3.1 在MS_DOS 或Windows下安装NASM
当你得到NASM的DOS版本的文件时,nasmXXX.zip(XXX表示NASM的版本号),将它解压到当前目录下
(例如:C:\\NASM)
这个文件包含4个执行文件:NASM的执行文件为:nasm.exe和nasmw.exe和NDISASM的执行文件:
ndisasm.exe,ndisasmw.exe.这个文件夹里文件名后有w为一个win32可执行文件,被设计在windows95
或windows NT下运行,另外的是16位的DOS执行程序。
NASM文件要运行它的自运行文件,因此拷贝(至少)nasm.exe和nasmw.exe的一个到你的目录下,或
选择一个编辑autoexec.bat文件将nasm的路径加到你的PATH目录上。 (如果你要节省空间可以删除它);
然而,你可以保留这个文件或测试程序。
如果你下载了DOS的源码文件包, nasmXXXs.zip,nasm目录将包含完事的NASM源代码,你可以选择一个
MAKEFILE(推荐)来重新编译NASM,README文件列出了这些MAKEFILE之间的不同和用什么编译程序编译
的。 注意源文件:insnsa.c,insnsd.c,insnsi.h和insnsn.c是自动从Perl角本文件:
主指令列表文件insns.dat生成的。
文件macros.c是通过另一个Perl角本从standard.mac生成的。
虽然NASM 0.98的发布包含这些生成文件,但如果你改变了insns.dat,standard.mac或相关文档,
你还是需要重新编译它。(因此你需要一个Perl解释器),也许以后的源码发布文档根本就不包含
这些文件。Perl在不同平台(包含DOS和Windows)的输出变化,在http://www.cpan.org/可以找到。

1.3.2 在Unix下安装NASM
一旦你得到NASM的Unix源码文件:nasm-X.XX.tar.gz(这里X.XX表示档案中包含NASM的版本号),你
就可以把它解压到如:/usr/local/src的目录下,这个档案一旦解压会生成它自己的子目录:nasm-X.XX.
NASM是一个自配置压缩包:你解压后,用cd命令到它解压的目录下,然后用type ./configure命令,
这个shell角本将会找到最好的c编译器来编译NASM并建立相应的Makefiles文件。
一旦NASM自动配置后,你就可以用命令type make来编译nasm和ndisasm二进制文件,然后用命令install
来将它们安装到/usr/loacl/bin下,将nasm.1和ndisasm.1的帮助文件安装到/usr/local/man/man1目录
下。对于有选择的,你可以给出如--prefix来配置角本(关于安装的详细信息见INSTALL文件),或者安装
你自己的程序。
NASM也提供一些关于RDOFF自定义目标文件格式的工具,这些在NASM压缩包的rdoff子目录下,如果你想用
他们的话。
如果NASM自配置失败的话,你可以用Unix的失败后退makefile文件Makefile.unx来编译它。对Makefile
文件拷贝或重命名文件, 并试关重新编译。在rdoff子目录下也有一个Makefile.unx文件。

原文地址:https://www.cnblogs.com/cnlmjer/p/4099885.html