2009-10-15 16:49 64位汇编编译器(整理)

http://hi.baidu.com/ballmillsap/item/f665554966cb690dc11613fb

 

在支持64位汇编编译器已经很多很多了,这里只把我知道的几个,简单罗列一下,不足之处还请其他大侠予以纠正和加以补充:


(一)
·ml64.exe

这是VC++   2005里带的汇编编译器,只要你安装了Visual   Studio   2005软件,这个就有了。它的目录一般是在“Program   Files\Microsoft   Visual   Studio   8\VC\bin\amd64”,你在这里一定可以发现有个ml64.exe文件。从[开始菜单]-> [Microsoft   Visual   Studio   2005]-> [Visual   Studio   Tools]-> [Visual   Studio   2005   x64   兼容工具命令提示]也可以启动它,它启动命令行窗口一般先要执行一个批处理文件,就是“Program   Files\Microsoft   Visual   Studio   8\VC\vcvarsall.bat”,然后有了这个环境才可运行ml64.exe。

ml64.exe的详细用法可查看“ml64   /?”

Microsoft   (R)   Macro   Assembler   (x64)   Version   8.00.50727.762
Copyright   (C)   Microsoft   Corporation.     All   rights   reserved.

ML64   [   /options   ]   filelist   [   /link   linkoptions   ]

/Bl <linker>   Use   alternate   linker                     /Sf   Generate   first   pass   listing
/c   Assemble   without   linking                               /Sl <width>   Set   line   width
/Cp   Preserve   case   of   user   identifiers           /Sn   Suppress   symbol-table   listing
/Cx   Preserve   case   in   publics,   externs           /Sp <length>   Set   page   length
/D <name> [=text]   Define   text   macro                   /Ss <string>   Set   subtitle
/EP   Output   preprocessed   listing   to   stdout   /St <string>   Set   title
/F   <hex>   Set   stack   size   (bytes)                       /Sx   List   false   conditionals
/Fe <file>   Name   executable                                   /Ta <file>   Assemble   non-.ASM   file
/Fl[file]   Generate   listing                                 /w   Same   as   /W0   /WX
/Fm[file]   Generate   map                                         /WX   Treat   warnings   as   errors
/Fo <file>   Name   object   file                                 /W <number>   Set   warning   level
/Fr[file]   Generate   limited   browser   info       /X   Ignore   INCLUDE   environment   path
/FR[file]   Generate   full   browser   info             /Zd   Add   line   number   debug   info
/I <name>   Add   include   path                                   /Zf   Make   all   symbols   public
/link   <linker   options   and   libraries>             /Zi   Add   symbolic   debug   info
/nologo   Suppress   copyright   message                 /Zp[n]   Set   structure   alignment
/Sa   Maximize   source   listing                               /Zs   Perform   syntax   check   only
/errorReport: <option>   Report   internal   assembler   errors   to   Microsoft
none   -   do   not   send   report
prompt   -   prompt   to   immediately   send   report
queue   -   at   next   admin   logon,   prompt   to   send   report
send   -   send   report   automatically


(二)
·GoASM

下载地址:
http://www.jorgon.freeserve.co.uk

这个支持64位,它的编译器是GoAsm.exe,还有链接器GoLink.exe、资源编译器GoRC.exe、除错测试工具GoBug.exe和TestBug.exe等。

GoAsm.exe的详细用法可查看“goasm   -h”:

GoAsm.Exe   Version   0.56.03a-   Copyright   Jeremy   Gordon   2001/7   -   JG@JGnet.co.uk
Use   this   syntax   in   the   command   line:-

GoAsm   [command   line   switches]   inputfile[.ext]
(.asm   assumed   if   file   not   found   and   no   extension   specified)

Command   line   switches:-
/b=beep   on   error
/c=force   output   to   current   directory
/d=define   a   word   (eg.   /d   WORD=0x345)
/e=empty   output   file   allowed
/fo=specify   output   path/file   eg.   /fo   asm\myprog.obj
/h=this   help
/l=create   listing   output   file
/ms=decorate   for   ms   linker
/ne=no   error   messages         /ni=no   information   messages
/nw=no   warning   messages     /no=no   output   messages   at   all
/x64=assemble   for   AMD64   or   EM64T
/x86=assemble   64-bit   source   in   32-bit   compatible   mode


(三)
·YASM

YASM是一个跨平台、支持多种目标文件格式的汇编编译器,它有Windows/Linux/DOS等版本,它重写了停滞的NASM项目。并支持GAS(GNU   assembler)语法和AMD64(EM64T)架构,它的源代码在三条款BSD等授权下发放。

下载地址:
http://www.tortall.net/projects/yasm

它的源代码是以“.tar.gz”作文件扩展名的,比如yasm-0.6.0.tar.gz,源码用c语言和汇编写成,可以参考一下。64位编译器文件名 含有“win64”,比如yasm-0.6.0-win64.exe。下载了yasm-0.6.0-win64.exe可执行文件后,可将其改名为 “yasm.exe”以方便今后使用。yasm.exe的用法大致象这样:yasm   -o   object.o   source.asm

它还有许多选项参数,这些更具体用法请参考命令行“yasm   -h”


(四)
·FASM

它的全称是“Flat   Assembler”,支持64Bit汇编。

下载地址:
http://flatassembler.net

它的Windows版本运行文件FASMW.EXE可以在Windows下直接双击打开窗口,也可以带参数执行编译。fasmw直接编译源码文件的用法如下:

usage:   fasmw   <source>   [output]
optional   settings:
-m   <limit>     set   the   limit   in   kilobytes   for   the   memory   available   to   assembler
-p   <limit>     set   the   maximum   allowed   number   of   passes


(五)
·GAS

上面都说了不少支持Windows系统平台的,再说一个Linux下的64位编译器,就是GAS(GNU   Assembler)。GAS的编译器是“as”,它的链接器是“ld”,GAS的网址是“http://www.gnu.org/software /binutils”,GAS被包含在GNU   BinUtils包里,这个binutils最新版本是2.17。

下载地址:
http://ftp.gnu.org/gnu/binutils

在这个地址找到其最新版本的源代码文件,比如“binutils-2.17.tar.gz”,然后下载。

然后在Linux里解开这个“.tar.gz”文件并编译它的源码,关于怎样编译请参考README文件,无外乎:
./configure  
make
make   install
这样的命令。

编译后就可以运行“as”命令来编译汇编源文件了,as的进一步用法请参考“as   -help”。


应该还有其他很多支持64位汇编的编译器,我没说到的请其他人补充。

posted @ 2012-10-30 11:04  董雨  阅读(673)  评论(0编辑  收藏  举报