Remove ads
来自维基百科,自由的百科全书
MASM 是 Microsoft Macro Assembler 的縮寫,它是微軟為 x86 微處理器家族,所寫的一套巨集組譯器。它最初是用來發展在 MS-DOS 上面執行的軟件,同時,它也是該系統最流行的組譯器。
它支援的巨集很靈巧,既廣泛又多樣性,結構化程式的慣用語法,包含高階架構式的迴圈、程式呼叫,以及輪替 (alternation)(因此,MASM 算是高階組譯器的一個範本)。MASM原本是由微軟公司維護的,但從6.12版後不再單獨銷售,而是隨附在微軟軟件開發套件與C語言編譯器下,近期版本的MASM也包含在微軟開發工具Visual Studio中。
在 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) 的能力。雖然這個產品上了年紀,但它仍然是最受各方支援的組譯器。
單獨銷售的最終版本 MASM 是 6.11。自從微軟停止 MASM 單獨銷售之後,至今他們也更新了幾次的 MASM。因為在微軟的作業系統等產品內,還是有大量以匯編語言撰寫的程式碼。
在這些新版 Visual C++ 的 bin 目錄中,皆有 ml.exe。Visual C++ .NET 2005 的相同目錄,還有一個 ml64.exe,它可以組譯 x64 的程式碼。相關的說明,都包含在這些新版 Visual C++ 的說明文件裏。
有些新版的 MASM,也會放在微軟的 SDK 和 DDK 中。 在VisualStudio2010中可用如下方式執行MASM(ML.exe):
[SetupDir]\VC>ML [SourceFile]
雖然有傳言說,微軟不再支援發展組譯器,事實上,微軟是繼續支援發展這個產品。大致來說,支援僅限於添加新的指令集,如出現較新的處理器,以及加強支援 64 位元;往後將不會見到此組譯器被徹底的改頭換面。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.