アセンブリ言語(MASM)のコンパイル方法について紹介します。
アセンブリ言語とは
アセンブリ言語とは、プログラミング言語の一種でマシン語(コンピュータが理解できる命令)と1対1で対応付けされた言語です。必要最小限の命令のみで処理を記述できるため、他のプログラミング言語に比べて実行ファイルサイズを小さくできたり、実行速度を速くすることができます。ただし、必要な処理をマシン語に対応した命令ですべて記述しなければならないためソースコードは長くなる傾向があります。
メッセージボックスを表示するアセンブリ言語
メッセージボックスを表示するだけのシンプルなアセンブリ言語コードは以下となります。
.386
.model flat,stdcall
option casemap:none
MessageBoxW PROTO STDCALL :DWORD,:DWORD,:DWORD,:DWORD
ExitProcess PROTO STDCALL :DWORD
.data
title1 dw "h","e","l","l","o",10,0
message1 dw "w","o","r","l","d","!",10,0
.code
start:
invoke MessageBoxW, 0, addr message1, addr title1, 0h
invoke ExitProcess, 0
end start
1から3行目までは、プロセッサやメモリモデル等の指定を行っています。
5から6行目では、呼び出す関数の宣言を行っています。
8から10行名では、使用する変数の定義を行っています。
12から16行目が、実行されるコードとなります。プロセスの最後はExitProcessを呼び出す決まりとなっています。
コンパイルする場合は上記コードをコピーしてmsgbox.asmに文字コードShift-JISで保存しておきます。
アセンブリ言語のコンパイラのインストール
Microsoft製のC/C++のビルドツールBuild Tools for Visual Studio 2022をインストールします。この中にアセンブリ言語をビルドするためのツールが含まれています。
下記のサイトを開きます。
Visual Studio Tools のダウンロード - Windows、Mac、Linux 用の無料インストール (microsoft.com)
ページの下の方にある「すべてのダウンロード」の中の「Visual Studio 2022 用のツール」をクリックして展開します。
「Build Tools for Visual Studio 2022」の「ダウンロード」ボタンよりダウンロードします。
ダウンロードされたvs_BuildTools.exeを起動します。インストールを進めていくと、下記のようなインストールする項目の選択画面が表示されるので「C++ によるデスクトップ開発」を選択して、「インストール」ボタンをクリックします。
インストールが開始されます。
インストールが完了したら、Visual Studio Installerを閉じます。
ビルドして実行する
スタートメニューから「x86 Native Tools Command Prompt for VS 2022」を探し実行します。
msgbox.asmが保存されているフォルダーに移動し、下記のコマンドを入力して実行します。
ML.EXE /c msgbox.asm
LINK.EXE /SUBSYSTEM:WINDOWS msgbox.obj KERNEL32.LIB USER32.LIB
ビルドが成功すると同じフォルダーにmsgbox.exeが生成されます。実行するとメッセージボックスが表示されます。
参考サイト
マイクロソフトMASM
https://docs.microsoft.com/ja-jp/cpp/assembler/masm
Iczelion's Win32 Assembly Tutorials の翻訳
http://www.interq.or.jp/chubu/r6/masm32/masm006.html
MASM(32bit) の構文&説明(抜粋)
https://magnus.matrix.jp/mrm/