Nasm中文手册范本

上传人:l**** 文档编号:127600128 上传时间:2020-04-03 格式:DOC 页数:128 大小:393.50KB
返回 下载 相关 举报
Nasm中文手册范本_第1页
第1页 / 共128页
Nasm中文手册范本_第2页
第2页 / 共128页
Nasm中文手册范本_第3页
第3页 / 共128页
Nasm中文手册范本_第4页
第4页 / 共128页
Nasm中文手册范本_第5页
第5页 / 共128页
点击查看更多>>
资源描述

《Nasm中文手册范本》由会员分享,可在线阅读,更多相关《Nasm中文手册范本(128页珍藏版)》请在金锄头文库上搜索。

1、Nasm中文手册 -第一章: 简介- 1.1 什么是NASM NASM是一个为可移植性与模块化而设计的一个80x86的汇编器。它支持相当多 的目标文件格式,包括Linux和NetBSD/FreeBSD,a.out,ELF,COFF,微软16 位的OBJ和Win32。它还可以输出纯二进制文件。它的语法设计得相当的简 洁易懂,和Intel语法相似但更简单。它支持Pentium,P6,MMX,3DNow!, SSE and SSE2指令集, 1.1.1 为什么还需要一个汇编器? NASM当初被设计出来的想法是comp.lang.asm.x86(或者可能是alt.lang.asm ,我忘了),从本质上

2、讲,是因为没有一个好的免费的x86系例的汇编器可以使用, 所以,必须有人来写一个。 (*)a86不错,但不是免费的,而且你不可能得到32位代码编写的功能,除非你 付费,它只使用在dos上。 (*) gas是免费的,而且在dos下和unix下都可以使用,但是它是作为gcc的一 个后台而设计的,并不是很好,gcc一直就提供给它绝对正确的代码,所以它的 错误检测功能相当弱,还有就是对于任何一个想真正利用它写点东西的人来讲, 它的语法简直太可怕了,并且你无法在里面写正确的16位代码。 (*) as86是专门为Minix和Linux设计的,但看上去并没有很多文档可以参考。 (*) MASM不是很好,并且

3、相当贵,还且只能运行在DOS下。 (*) TASM好一些,但却极入与MASM保持兼容,这就意味着无数的伪操作码和繁琐 的约定,并且它的语法本质上就是MASM的,伴随着的就是一些自相矛盾和奇怪的 东西。它也是相当贵的,并且只能运行在DOS下。所以,只有NASM才能使您愉悦得编程。目前,它仍在原型设计阶段-我们不期望它能够超越所有的这些汇编器。但请您发给我们bug报告,修正意见,和其他有用的信息,还有其他任何你手头有的对我们有用的信息(感谢所有已经这样在做了的人们),我们还会不断地改进它。 1.1.2 许可条件请阅读作为NASM发布的一部分的文件Licence,只有在该许可条件下你才可以使用NAS

4、M。 1.2 联系信息当前版本的NASM(0.98.08)由一个开发小组在维护,你可以从nasm-devel邮件列表中得到(看下面的链接),如果你想要报告bug,请先阅读10.2节 NASM有一个主页:http:/www.web-sites.co.uk/nasm,更多的信息还可以在http:/ 最初的作者你可以通过email:julesdsf.org.uk和和他们联系,但后来的开发小组并不在其中。最新的NASM发布被上传至官方网站http:/www.web-sites.co.uk/nasm和ftp.kernel.org,ibiblio.org公告被发布至comp.lang.asm.x86, a

5、lt.lang.asm 和comp.os.linux.announce 如果你想了解NASM beta版的发布,和当前的开发状态,请通过在http:/ http:/ and http:/ 在网站Sourceforge上的列表是较好的一个列表,它也是最新nasm源代码与发布的一个网站,另外的列表也是公开的,但有可能不会被继续长期支持。 1.3 安装 1.3.1 在dos和Windows下安装NASM如果你拿到了NASM的DOS安装包,nasmXXX.zip(这里.XXX表示该安装包的NASM版本号),把它解压到它自己的目录下(比如:c:nasm)该包中会包含有四个可执行文件:NASM可拟行文件n

6、asm.exe和nasmw.exe,还有NDISASM可执行文件ndisasm.exe和ndisasmw.exe。文件名以w结尾的是Win32可执行格式。是运行在Windows 95或Windows NT的Intel处理器上的,另外的是16位的DOS可执行文件。NASM运行时需要的唯一文件就是它自己的可执行文件,所以可以拷贝nasm.exe和nasmw.exe的其中一个到你自己的路径下,或者可以编写一个autoexec.bat把nasm的路径加到你的PATH环境变量中去。(如果你只安装了Win32版本的,你可能希望把文件名改成nasm.exe。)就这样,NASM装好了。你不需要为了运行nasm

7、而让nasm目录一直存在(除非你把它加到了你的PATH中,所以如果你需要节省空间,你可删掉它,但是,你可能需要保留文档或测试程序。如果你下载了DOS版的源码包,nasmXXXs.zip,那nasm目录还会包含完整的NASM源代码,你可以选择一个Makefiles来重新构造你的NASM版本。注意源文件insnsa.c, insnsd.c, insnsi.h和insnsn.c是由standard.mac中的指令自动生成的,尽管NASM0.98发布版中包含了这些产生的文件,你如果改动了insns.dat,standard.mac或者文件,可能需要重新构造他们,在将来的源码发布中有可能将不再包含这些文

8、件,多平台兼容的Perl可以从www.cpan.org上得到。 1.3.2 在unix下安装NASM如果你得到了Unix下的NASM源码包nasm-x.xx.tar.gz(这里x.xx表示该源码包中的nasm的版本号),把它解压压到一个目录,比如/usr/local/src。包被解压后会创建自己的子目录nasm-x.xxNASM是一个自动配置的安装包:一旦你解压了它,cd到它的目录下,输入./configuer,该脚本会找到最好的C编译器来构造NASM,并据此建立Makefiles。一旦NASM被自动配置好后,你可以输入make来构造nasm和ndisasm二进制文件,然后输入make ins

9、tall把它们安装到/usr/local/bin,并把man页安装到/usr/local/man/man1下的nasm.1和ndisasm.1或者你可以给配置脚本一个-prefix选项来指定安装目录,或者也可以自己来安装。NASM还附带一套处理RDOFF目标文件格式的实用程序,它们在rdoff子目录下,你可以用make rdf来构造它们,并使用make rdf_install来安装。如果你需要的话。如果NASM在自动配置的时候失败了,你还是可以使用文件Makefile.unx来编译它们,把这个文件改名为Makefile,然后输入make。在rdoff子目录下同样有一个Makefile.unx文

10、件。第二章 运行NASM- 2.1 NASM命令行语法要汇编一个文件,你可以以下面的格式执行一个命令:nasm -f -o 比如,nasm -f elf myfile.asm会把文件myfile.asm汇编成ELF格式 的文件myfile.o.还有:nasm -f bin myfile.asm -o 会把文件myfile.asm汇编成纯二进制格式的文件。想要以十六进制代码的形式产生列表文件输出,并让代码显示在源代码的左侧,使用-l选项并给出列表文件名,比如:nasm -f coff myfile.asm -l myfile.lst想要获取更多的关于NASM的使用信息,请输入:nasm -h它同

11、时还会输出可以使用的输出文件格式,如果你使用Linux并且不清楚你的系统是a.out还是ELF,请输入:file nasm(在nasm二进制文件的安装目录下使用),如果系统输出类似下面的信息:nasm: ELF 32-bit LSB executable i386 (386 and up) Version 1那么你的系统就是ELF格式的,然后你就应该在产生Linux目标文件时使用选项-f elf,如果系统输入类似下面的信息:nasm: Linux/i386 demand-paged executable (QMAGIC)或者与此相似的,你的系统是a.out的,那你应该使用-f aout(Lin

12、ux的a.out系统很久以前就过时了,现在已非常少见。) 就像其他的Unix编译器与汇编器,NASM在碰到错误以前是不输出任何信息的,所以除了出错信息你看不到任何其他信息。 2.1.1 -o选项:指定输出文件的文件名。NASM会为你的输出文件选择一个文件名;具体如何做取决于目标文件的格式,对于微软的目标文件格式(obj和win32),它会去掉你的源文件名的.asm扩展名(或者其他任何你喜欢使用的扩展名,NASM并不关心具体是什么),并替换上obj。对于Unix的目标文件格式(aout,coff,elf和as86)它会替换成.o, 对于rdf,它会使用.rdf,还有为bin格式,它会简单地去掉扩展名,所以myfile.asm会产生的一个输出文件myfile。如果输出文件已经存在,NASM会覆盖它,除非它的文件名与输入文件同名,在这种情况下,它会给出一个警告信息,并使用nasm.out作为输出文件的文件名。在某些情况下,上述行为是不能接受的,所以,NASM提供了-o选项,它能让你指定你的输出文件的文件名,你使用-o后面紧跟你为输出文件取的名字,中间可以加空格也可以不加。比如:nasm -f bin program.asm -o nasm -f bin driver.asm -odriver.sys请注意这是一个小写的o,跟大写字母O是不同的,大写的是用来指定需要传递的选项的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号