MASM
维基百科,自由的百科全书
MASM 是 Microsoft Macro Assembler 的縮寫, 它是 微軟 為 x86 微處理器家族, 所寫的一套巨集組譯器. 它最初是用來發展在 MS-DOS 上面執行的軟體, 同時, 它也該系統最流行的組譯器.
它支援的巨集很靈巧, 既廣泛又多樣性, 結構化程式的慣用語法, 包含高階架構式的迴圈、程序呼叫, 以及輪替 (alternation) (因此, MASM 算是高階組譯器的一個範本).
目录 |
[编辑] 競爭
在 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 的專案
有許多正在進行的軟件開發專案, 都有支援到 MASM, 其中包括 IDE (如 WinAsm Studio, RadASM)、除錯器 (像是 OllyDbg), 以及 反組譯器 (如 IDAPro, Interactive Disassembler)
這個 MASM32 的專案 (http://www.movsd.com/) 為了 MASM 使用者的方便, 它把許多非常令人感動的程式師所寫的程式庫 (library)、程式範例 (sample code) 寶庫, 以及令人感動的說明文件, 全都集合在一起. 也有很多網上論壇, 有在支援 MASM (包括 http://www.masmforum.com).
這些也都是沿習著著名的產品, 如 Visual Basic、Visual C++、EasyCode 的 IDE 一樣, 為 MASM 提供 視覺化 (visual) 的能力. 雖然這個產品上了年紀, 但它仍然是最受各方支援的組譯器.
[编辑] MASM 的版本
雖然 MASM 不再是商業產品, 但微軟乃繼續支援著它, 因為在微軟的廠內, 還是存在著大量以組語為基礎的程式碼.
以單獨包裝販賣的 MASM, 最後版本的是 6.11. 自從微軟停止對 MASM 分開銷售後, 至今他們也更新了幾次的 MASM 6.x 版.
6.15 版是放在 Visual C++ 6.0 Processor Pack 中.
7.0 版是放在 Visual C++ .NET 2002.
7.1 版是放在 Visual C++ .NET 2003.
8.0 版是放在 Visual C++ .NET 2005, 它也可以組譯 x64 的程式碼.
在這些新版 Visual C++ 的 bin 目錄中, 都可以看見 ml.exe, 但在 Visual C++ .NET 2005 的同樣目錄中, 可以看見 ml64.exe, 它可以組譯 x64 的程式碼. 它的說明文件, 也都是這些新版本的 Visual C++ 之說明文件的一部份.
有一些新版本的 MASM , 也會放在微軟的 SDK 和 DDK 中.
[编辑] 支援
雖然有傳言說, 微軟不再支援發展組譯器, 事實上, 微軟是繼續支援發展這個產品. 大致來說, 支援僅限於添加新的指令集, 如出現較新的處理器, 以及加強支援 64 位元; 往後將不會見到此組譯器被徹底的改頭換面.