Microsoft Macro Assembler

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

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年代はじめには、ボーランド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プロジェクト (http://www.movsd.com/) は広範囲なライブラリ、サンプルコード、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++のドキュメントの一部になっている。最新バージョンのMASMは、マイクロソフトのSDKやDDKにも含まれている。

サポート[編集]

現在もマイクロソフトはMASMのサポート、開発を続けている。ただし、新たなプロセッサに対する命令の追加や64ビットサポートの改善など限定されたサポートのみになっており、アセンブラに関する革新的な変更は見込めない。

関連項目[編集]

外部リンク[編集]