Microsoft Macro Assembler

Microsoft Macro Assembler（マイクロソフト・マクロ・アセンブラ、MASMと略す）はx86系マイクロプロセッサ用のアセンブラである。マイクロソフトがMS-DOS上の開発のために製造し、DOS上では最も普及したアセンブラであった。豊富なマクロと高水準なループ構造、手続き呼び出しなどの構造化プログラミングに対応している。高級アセンブラに分類できる。

5.1版と6版でOS/2アプリケーションとなり、さらに6.1版からは32ビットWindowsのコンソールアプリケーションになった。当初、6.1版と6.11版ではMS-DOS上で動作させるためPhar Lap TNT DOSエクステンダを同梱していた。6.1版は最終版のWindows NTでは動作しない。

 競争 
1990年代はじめには、SLRのOPTASM、ボーランドのTurbo Assembler、シェアウェアのA86、1990年代終わり頃には、NASMといった競合アセンブラがMASMのシェアを奪い始めた。しかし、1990年代後半の二つの出来事がMASMのシェアを取り返した。一つはマイクロソフトがMASMの販売をやめ、DDKにMASMを同梱し無料で配布したことであり、もう一つはMASM32パッケージと「Iczelion's Win32 tutorials」が登場し、MASMでWindowsのアプリケーション開発が可能になったことである。2000年には、MASM 6.15を「Visual C++ プロセッサ・パック」の一部として無料で提供した。結果的に、6.0以降のすべてのVisual C++に同じ版のMASMを含むようになった。Visual C++ 2005以降には、64ビット版のMASM（ファイル名はml64.exeとなっている）も登場した。強大なMASMの導入率とあわせ、こうした出来事はMASM離れを防ぐことになった。今日、NWSA、NASM、Yasm、FASM、GoAsm、HLAといった新たな製品との競争においてもMASMはいまだ市場占有率一位のアセンブラである。

 MASM対応プロジェクト 
IDE（「WinAsm Studio」、RadASM）、デバッガ (OllyDbg)、ディスアセンブラ（IDAPro、「Interactive Disassembler」）など、多くの現行ソフトウェアがMASMに対応する。MASM32プロジェクト は広範囲なライブラリ、コード例、MASMの文書をまとめている。多数のウェブページや対応フォーラム（http://www.masmforum.com/ など）もMASMに対応している。Visual BasicやVisual C++のような視覚的性能を持つEasyCodeというMASM向けのIDEもある。

 MASMの版 
、MASMは単独の商用製品として販売していない。マイクロソフトは社内外に抱える多数のアセンブリコードのために対応を続けている。単独販売MASMの最終は6.11版である。単品販売をやめてからも、MASM 6.xの更新を何度も提供した。6.15版は「Visual C++ 6.0 プロセッサー・パック」に同梱した。7.0版は「Visual C++ .NET 2002」に同梱した。7.1版は「Visual C++ .NET 2003」に同梱した。8.0版はx64版とあわせて「Visual C++ .NET 2005」に同梱している。

最新のVisual C++に同梱している版は、Visual C++を導入した先の「bin」ディレクトリにあるml.exeを見ればわかる。同様にx64コードをアセンブルできるものは、同ディレクトリのml64.exeを見ればわかる。最新文書はVisual C++の文書の一部になっている。マイクロソフトのSDKやDDKに最新版のMASMを含んでいる。

 対応 
もマイクロソフトはMASMの対応、開発を続けている。新たなプロセッサに対する命令の追加や64ビット対応の改善など限定した対応のみになっている。アセンブラに関する革新的な変更は不明である。

 関連項目 
 アセンブラ

 外部リンク 
 Microsoft Macro Assembler Reference
 MASM32ホームページ。MASMのディスカッション・フォーラムもある。
 WinAsm Studio IDE - アセンブリ・フォーラム、オープンソフト・プロジェクト
 Microsoft Macro Assembler 8.0 (MASM) パッケージ (x86 用)
 Micro-Processor Services, Inc. has converter tools and migration services to translate from MASM to C language.
 Comparison of assemblers(英語)

Category:アセンブラ
まくろ あせんふら
Category:Windowsのソフトウェア