Microsoft Macro Assemblerソフトウェア (Microsoft Macro Assembler、頭字語MASMでよく知られています) は、x86 プロセッサ ファミリ用のアセンブラです。これは元々、 MS-DOSオペレーティング システムの開発のために Microsoft によって開発されました。
MASM は、アセンブリ言語プログラミングだけでなく、ループ、プロシージャ呼び出し、分岐などの高レベルの構造を含む構造化プログラミングイディオムをサポートするさまざまなマクロをサポートします。これにより、MASM は高レベルのプログラミング アセンブラになります。 MASM の最新バージョンには、 Windowsオペレーティング システム用のプログラムを作成する機能があります。 MASM は、個別の 16 ビット バージョンと 32 ビット バージョンが存在しない珍しいMicrosoft開発ツールの 1 つでした。

組立業者間の競争
1990 年代の初期には、 Borlandの TASM、A86シェアウェア、そして 10 年代の終わりにかけて NASM など、他の代替アセンブラが MASM から市場シェアの一部を奪いました。しかし、90 年代末の 2 つの出来事により、MASM はアセンブリ プログラマのコミュニティから堅固なサポートを維持することができました。まず、それまで商用ソフトウェアであった MASM が、アセンブリ開発キットの一部として無料で配布されました (ドライバー開発キットまたは DDK)。次に、Steve Hutchesson によって保守されている MASM32パックと Iczelion チュートリアルが登場し、Windows 上で直接実行される 32 ビット アプリケーションを直接かつ比較的簡単にプログラムできるようになりました。これら 2 つのイベントの組み合わせにより、MASM は長期にわたって継続することが保証されました。
MASM は現在でも Win32 プラットフォームのアセンブリ プログラマ コミュニティの主力アセンブラの 1 つですが、NASM、TASM、FASM、GoAsm、RosAsm、HLA などの他のアセンブラもそれぞれ大きなコミュニティをまとめています。

MASMのバージョン
MASM は商用製品ではなくなりましたが、Microsoft の内部開発ではアセンブリ言語がかなり頻繁に使用されているため、Microsoft はサポートを提供し続けています。 Microsoft が MASM の販売を停止して以来、MASM v6.x 系統に対して多くの更新が作成されました (この系統の最後の更新は、Visual C++ 6.0 Processor Packに含まれていたバージョン 6.15 です)。 MASM v7.0 は Visual C++ .NET 2002 に、MASM v7.1 は Visual C++ .NET 2003 に、MASM 8.0 は Visual C++ .NET 2005 に含まれていました (後者のバージョンは、64 ビット コードをアセンブルできる最初のバージョンです)。 。 Visual C++ に含まれる MASM のバージョンの場合、MASM 実行可能ファイルはml.exeと呼ばれ、 binディレクトリにあります。 Visual C++ 2005 に含まれる MASM の 64 ビット バージョンはml64.exeと呼ばれ、同じディレクトリにあります。これらのバージョンの MASM ドキュメントは、Visual C++ ドキュメントに含まれています。

MASMを支援するプロジェクト
MASMを支援するプロジェクトが数多く登場しています。したがって、統合開発環境では、Qedit、Radasm、または WinAsm Studio などの MASM (通常はコマンド ラインで使用されます) を使用した開発が容易になります。 MASM 構文をサポートする OllyDbg などのデバッガや IDA などの逆アセンブラについても説明します。
多くのフォーラムやWeb サイトでは、このアセンブラに関するドキュメントやヘルプのソース コードが提供されています。このアセンブラは、古いものにもかかわらず、依然として最もサポートされているアセンブラの 1 つです。
今日の Microsoft による MASM の公式サポートは、要約すると、新しいプロセッサがリリースされたときに命令を追加し、64 ビットサポートを改善することです。
