Microsoft Macro Assembler

MASMから転送)

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

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プロジェクト (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++の文書の一部になっている。マイクロソフトのSDKやDDKに最新版のMASMを含んでいる。

対応 編集

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

関連項目 編集

外部リンク 編集