MASM
MASM是Microsoft Macro Assembler的縮寫,伊是微軟仔為 x 八十六微處理器家族,所寫的一套巨集組譯器。伊上頭仔是用來發展的 MS-DOS 頂懸執行的軟體,同時,伊也是這个系統上時行的組譯器。
伊支援的巨集誠巧,遮講法度閣多樣性,結構化程式的慣用語法,包含高階架構式的迴圈、程式呼叫,佮輪替 ( alternation )(所以,MASM 算是高階組譯器的一个範本)。 MASM 原本是由微軟公司維護的,毋過對六分一二版了後才閣獨獨銷售,是隨附佇咧微軟體開發套件佮 C 語言編譯器下,近期版本的 MASM 嘛包含佇咧微軟仔開發工具 Visual Studio 中。
競爭
佇一九九空年代初期,無論如何,有一寡會當選擇的組譯器,像講 Borland TASM、共享版的 A 八十六,以及(佇咧九空年代尾期)NASM,攏開始號的 MASM 的一寡市場份量。但是佇一九九空年代終,有兩種因素,予得 MASM 保住大部份的市場份量:
所以,微軟停止共 MASM 成做商業產品仝款的賣出去,並且開始當做免費散佈 DDK(趕動器發展套件)之一部份;其次,MASM 三十二个開發包、Iczelion's Win 三十二教材的出現,看窗仔應用程式的設計,閣較方便使用 MASM .
尾仔佇二空空的時,MASM 六桱一五的發行,仝款是 Visual C + + Processor Pack 的一部份,費用全免。結果,佇咧 Visual C + + 六交零尾仔的所有的版本,所包括的 MASM 之版本,攏相等該 Visual C + + 的版本。後來佇咧 Visual C + + 兩千空五,六十四位元版的 MASM 出現矣(檔名做 ` ml 六十四 . exe `)。 加上有龐大數量已經安裝 MASM 的使用者群基礎,遮的因素,予得 MASM 猶是會當繼續生存無愛予人淘汰。
支援 MASM 的這个案
有真濟當咧進行的軟體開發專案,攏有支援著 MASM,其中包括講 IDE(如 WinAsm Studio,RadASM)、 除錯器(像講 OllyDbg), 以及反組譯器(如 IDAPro , Interactive Disassembler)
為著 MASM 使用者的方便,有 MASM 三十二的專案共程式設計師所寫的程式庫 ( library )、程式範例 ( sample code ) 以及說明文件集做伙。嘛有真濟網路論壇咧支援 MASM。
這款嘛攏是沿習著出名的產品,如 Visual Basic、Visual C + +、EasyCode 的 IDE 仝款,為 MASM 提供視覺化 ( visual ) 的能力。雖然這个產品有歲,但伊猶原是上蓋受各方支援的組譯器。
MASM 的版本
- 商業軟體的時陣的 MASM 主要版本:
- * 四 . x 一九八空年代尾期上時行的版本,足濟組合語言入門書攏當做範本。
- 五 . x 開始強化組譯器簡易指令(點指令), 用簡化程式架構。較晏的組合語言入門書亦大量運用此一版本。
- 六 . x 版本為著欲支援 Windows,有幾个重大特色:
- 支援 flat 佮三百八十六以上 CPU 保護模式。
- 整合 PWB(Programmer's WorkBench)開發環境。這軟體佇咧仝時期 Quick BASIC 嘛揣會著。
- 支援 DOS Extender,內建 DOS / 十六 M。
- 開始支援 OS / 二和 WinAPI。
- 簡易指令加入流程控制敘述,如 . IF、. While、. Exit . . . . . . 等。
- 強化對外部函式庫的支援命令,如 proto 佮 invoke 等指令,其中上核心的是將 proc 指令包裝做符合高階語言風格(支援 C 佮 Pascal 風格)彼个形體,而且 invoke 指令重包裝 call 佮 push / pop 指令,會當閣較直觀、高階地運用函式。這對呼叫高階語言寫做的函式、特別是繁複的 WinAPI 非常的重要。
- masm 佮 link 整合為 ML。
- NMake 的 makefile 描述結構嘛產生誠大的變化。
單獨銷售的最終版本 MASM 是六腑一一。自從細漢軟軟仔停止 MASM 獨獨銷售了後,到今𪜶嘛更新幾擺的 MASM。因為佇咧微軟的作業系統等產品內面,抑是有大量用組合語言編寫的程式碼。
- 六配一五版是囥佇咧 Visual C + + 六板零 Processor Pack 中。
- 七孵空版是囥佇咧 Visual C + + . NET 兩千空二。
- 七堵一版是囥佇 Visual C + + . NET 兩千空三。
- 八○零版的是囥佇咧 Visual C + + . NET 兩千空五,伊嘛會當組譯 x 六十四的程式碼。
佇咧這寡新版 Visual C + + 的 bin kha-tá-lok-guh 中,皆有 ml . exe。Visual C + + . NET 兩千空五的仝款 kha-tá-lok-guh,猶閣有一个 ml 六十四 . exe,伊會當組譯 x 六十四的程式碼。相關的說明,攏包含講佇遮新版 Visual C + + 的說明文件內底。
有的新版的 MASM,嘛會囥佇咧微軟仔 SDK 和 DDK 中。 佇咧 VisualStudio 兩千空一十中會用得下跤式執行 MASM(ML . exe):
` ` ` [SetupDir] \ VC > ML [SourceFile] ` ` `
支援
雖然有風聲講,軟汫不再支援發展組譯器,事實上,微軟是繼續支援發展這个產品。大概來講,支援干焦限佇咧添加新的指令集,若出現較新的處理器,猶閣加強支援六十四位元;後擺將袂看著這組譯器予徹底的改頭換面。
外部連結
- MASM 三十二 Homepage
- Free MASM Source Code
- PC Benchmarks For 六十四
- 開始進行六十四个 Windows 系統編程進前需要了解的所有資訊