zoukankan      html  css  js  c++  java
  • 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文件。

  • 相关阅读:
    hdu 4947
    hdu 4946
    hdu 4944
    hdu 4942
    hdu 4941
    PAT 【L2-011 玩转二叉树】
    PAT【L2-006 树的遍历】
    XYNUOJ 【2070: 重建二叉树】
    XYNUOJ 【1367: 二叉链表存储的二叉树】
    XYNUOJ 2390【二叉树遍历2】
  • 原文地址:https://www.cnblogs.com/cnlmjer/p/4099885.html
Copyright © 2011-2022 走看看