發展歷程
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 月發布,放在Visual C++ 6.0 Processor Pack中。
MASM 7.0
放在Visual C++ .NET 2002。
MASM 7.1
放在Visual C++ .NET 2003。
MASM 8.0
放在Visual C++ .NET 2005,它也可以彙編x64的代碼。
最新版本:12
位於Visual C++ 2013中
在這些新版Visual C++的 bin 目錄中,皆有 ml.exe。Visual C++ .NET 2005的相同目錄,還有一個 ml64.exe,它可以彙編x64的代碼。相關的說明,都包含在這些新版Visual C++的說明檔案里。
軟體競爭
在 1990 年代初期,不管如何,有一些可供選擇的彙編器,像是Borland TASM、共享版的A86,以及(在 90 年代末期)NASM,都開始取得 MASM 的一些市場份量。但是在 1990 年代終,有兩種因素,使得 MASM 保住大部分的市場份量
:
一是,微軟停止把 MASM 作為商業產品一樣的出售,並開始當成免費散布的DDK(驅動器發展包)之一部分;其次,MASM32 開發包、Iczelion's Win32 教材的出現,讓視窗應用程式的設計,更方便使用 MASM.
後來在 2000 年,MASM 6.15的發布,一樣是Visual C++ Processor Pack的一部份,費用全免。結果,在Visual C++ 6.0後來的所有版本,所包含的 MASM 之版本,都相等該Visual C++的版本。後來在Visual C++ 2005,64 比特版的 MASM 出現了(檔案名稱為ml64.exe)。加上有龐大數量已安裝 MASM 的用戶群基礎,這些因素,使得MASM仍能繼續生存而不被淘汰。
支持項目
有許多正在進行的軟體開發項目,都有支持到 MASM,其中包括IDE(如WinAsm Studio,RadASM)、除錯器(像是OllyDbg),以及反彙編器(如 IDAPro,Interactive Disassembler)
為了 MASM 用戶的方便,有MASM32的項目把程式設計師所寫的程式庫(library)、程式示例 (sample code) 以及說明檔案集合在一起。也有很多網上論壇在支持 MASM。
這些也都是沿習著著名的產品,如Visual Basic、Visual C++、EasyCode的IDE一樣,為 MASM 提供可視化(visual) 的能力。雖然這個產品上了年紀,但它仍然是最受各方支持的彙編器。
雖然有傳言說,微軟不再支持發展彙編器,事實上,微軟是繼續支持發展這個產品。大致來說,支持僅限於添加新的指令集,如出現較新的處理器,以及加強支持 64 比特;往後將不會見到此彙編器被徹底的改頭換面。