各种汇编器masm masm32 fasm nasm yasm gas的区别
masm
MASM是微軟公司開發的匯編開發環境,擁有可視化的開發界面,使開發人員不必再使用DOS環境進行匯編的開發,編譯速度快,支持80x86匯編以及Win32Asm是Windows下開發匯編的利器。它與windows平臺的磨合程度非常好,但是在其他平臺上就有所限制,使用MASM的開發人員必須在windows下進行開發。
masm32
MASM32 是一個為那些對學習或者編寫 32 位微軟匯編( MASM )感興趣 的程序員提供的工作環境,它最流行的版本是 8.0 版,而我所知道最新版本是 9.0 版。但是請大家一定要注意,這里的 8.0 版和 9.0 版不是指 MASM 編譯器 ( 即 ML) 的版本,而是 MASM32 開發環境的版本。
那么 MASM(ML) 編譯器的版本到底有哪些呢?教學上常用的版本是 5.0 版的, 5.0 版之后有個 5.1 版本,在這之后,從 6.0 版開始 MASM 就改名 ML 了,因為它把編譯和連接組合在一起了。而且 6.0 版還對匯編語言進行了大幅改造,使之支持高級語言的很多特性。 6.0 版之后??吹降木褪?6.11 、 6.13 、 6.14 MASM32(V8.0 和 V9.0) 就是包含有 ML6.14 版 , 而不是 ML8.0 版。 6.14 之后就是 6.15 但不常見 , 我手頭上有 6.15 的 ML 。但 Microsoft 從 6.15 版開始好象就不再單獨發布 MASM 的開發工具包了。
???????? 以后的 ML 還有 7.0 、 7.1 版,最新的是 ML8.0 版。但它們都只包含在 Visual Studio.Net 和 Visual Studio 2005 里面。而且如果你 安裝了 Visual Studio 2005 的 64 位開發環境,你將得到一個MASM for x64 ( ml64 .exe) 哈哈,各位這可是支持 Intel 和 AMD 的 64 位 CPU 的匯編語言編譯器!有志于 64 位底層開發的趕快去試用看看吧。
??????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????? MASM 編譯器各版本的區別
| 版???? 本 | 簡???? 介 |
| MASM 4.00 | 這是最先廣泛使用的一個 MASM 版本,適用于 DOS 下的匯編編程。它很精巧,但使用起來不是很智能化,需要用戶自己一板一眼地寫出所有的東西。很多教科書上講的 8086?匯編語法都是針對這個版本的,對程序員來說。它只比用 Debug 方便一點點 |
| MASM 5.00 | MASM 5.00 比 4.00 在速度上快了很多,并將段定義的偽指令簡化為類似 .code 與 .data 之類的定義方式,同時增加了對 80386 處理器指令的支持,對 4.00 版本的兼容性很好 |
| MASM 5.10 | 對程序員來說,這個版本最大的進步是增加了對 @@ 標號的支持。這樣,程序員可以不再為標號的起名花掉很多時間。另外, MASM 5.10 增加了對 OS/2 1.x 的支持 |
| MASM 5.10B | 1989 年推出,比上一個版本更穩定、更快,它是傳統的 DOS?匯編編譯器中最完善的版本 |
| MASM 6.00 | 1992 年發布,有了很多的改進。編譯器可以使用擴展內存,這樣可以編譯更大的文件,可執行文件名相應從 Masm.exe 改為 Ml.exe 。從這個版本開始可以在命令行上用 *.asm 同時編譯多個源文件,源程序中數據結構的使用和命令行參數的語法也更像 C 的風格。最大的改進之一是開始支持 .if/.endif 這樣的高級語法,這樣,使用復雜的條件分支時和用高級語言書寫一樣簡單,可以做到幾千行的代碼中不定義一個標號;另外增加了 invoke 偽指令來簡化帶參數的子程序調用。這兩個改進使匯編代碼的風格越來越像 C ,可讀性和可維護性提高了很多 |
| MASM 6.00A | 未發售的版本 |
| MASM 6.00B | 最后一個支持 OS/2 的 MASM 版本,修正了上一版本中的一些錯誤 |
| MASM 6.10 | 修正了一些錯誤,同時增加了 /Sc 選項,可以在產生的 list 文件中列出每條指令使用的時鐘周期數 |
| MASM 6.10A | 1992 年發布,修正了一些內存管理方面的問題 |
| MASM 6.11 | 1993 年 11 月發布,支持 Windows NT ,可以編寫 Win32 程序,同時支持 Pentium 指令,但不支持 MMX 指令集 |
| MASM 6.11C | 1994 年發布,增加了對 Windows 95 VxD 的支持 |
| MASM 6.12 | 1997 年 8 月發布,增加 .686 , .686P , .MMX 聲明和對相應指令的支持 |
| MASM 6.13 | 1997 年 12 月發布,增加了 .K3D 聲明,開始支持 AMD 處理器的 3D 指令 |
| MASM 6.14 | 這是一個很完善的版本,它在 .XMM 中增加了對 Pentium III 的 SIMD 指令集的支持,相應增加了 OWORD ( 16 字節)的變量類型 |
| MASM 6.15 | 2000 年 4 月發布 |
?
nasm fasm yasm
這三個都是免費開源的匯編編譯器,總體上都是采用的Intel的語法。yasm是從nasm的基礎上開發出來的,屬于同宗,使用了相同的語法,所以nasm的代碼可以用yasm編譯。
yasm雖然更新較慢,但對nasm一些不合理的地方進行了改良。從這個角度來看,yasm比nasm更優秀些,而nasm更新快,能支持更新的指令集,而且還支持Gas語法和AMD64(EM64T)架構,跨平臺,支持多種目標文件格式。在Windows平臺上,fasm是另一個不錯的選擇,平臺支持比較好,可以直接用來開發Windows上的程序,語法也比較獨特。在對Windows程序結構的支持上,fasm是3個免費的編譯器里做得最好的。
yasm的官方地址:http://yasm.tortall.net/Download.html。使用很簡單:將下載下來的yasm-1.2.0-win32.exe重命名為yasm.exe,放到D:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄下即可。
nasm的官方地址:http://www.nasm.us/
gas
Gas即GNU assembler 是linux下的匯編編譯器,使用的AT&T的語法。
總結
以上是生活随笔為你收集整理的各种汇编器masm masm32 fasm nasm yasm gas的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “AlphaGo之父”获最新一届ACM计
- 下一篇: Fedora14 yum 安装源的地址配