Microsoft Macro Assembler
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プロジェクト は広範囲なライブラリ、コード例、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(英語)