※この記事はUdon Advent Calendar 2024 - Adventarの17日目の記事です。
はじめに
大学の実験でアセンブリ言語を扱う機会がありました。
自分のPCでアセンブリ言語を扱いたかったので、Windowsでアセンブリ言語を扱う方法をまとめてみました。
MASMのインストール
このページからMASMをダウンロードします。
開いたら一番上のAustralia 1
をクリックし、ダウンロードします。
ダウンロードしたzipファイルを解党し、インストーラを起動します。基本的に全部クリックで進めて大丈夫です。
最後にちょっと時間がかかりますが、終了したらウィンドウを閉じます。
環境変数の設定
まずはパスを通します。環境変数PATH
にC:\masm32\bin
を追加してください。
インストールが完了しているかは以下のコマンドで確認できます。
ml -v
また、以下の環境変数も設定します。
-
INCLUDE
にC:\masm32\include
を追加 -
LIB
にC:\masm32\lib
を追加
サンプルプログラムの実行
以下のプログラムを作成します。
include masm32rt.inc
.code
main:
print "Hello, Assembly Language!", 13, 10
exit
end main
最初の行でインデントが必須らしいので注意します。
作成したら、そのディレクトリで以下のコマンドを実行します。
ml /c /coff test.asm
これにより、test.obj
が生成されます。次のような表示が出ると成功です。エラーが起きるとその旨が書いてあります。
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: test.asm
***********
ASCII build
***********
次はこのオブジェクトファイルをリンクします。
link /SUBSYSTEM:CONSOLE test.obj
これにより、test.exe
が生成されます。
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
エラーが発生すると、やはりその旨が表示されます。
最後に実行します。
test.exe
以下のような表示が出れば成功です。
Hello, Assembly Language!
batファイル化
使ったコマンドをいちいち打つのは面倒なので、batファイルを作成します。
@echo off
ml /c /coff %1.asm
link /SUBSYSTEM:CONSOLE %1.obj
%1.exe
名前は適当に決めます。例としてabuild.bat
とします。
パスが通っているディレクトリにbatファイルを配置し、以下のように引数を与えて実行することでコンパイル・リンク・実行することができます。
>abuild test
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: test.asm
***********
ASCII build
***********
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
Hello, Assembly Language!
おわりに
以上により、アセンブリ言語がWindowsで使えるようになりました。
アセンブリ言語は低級言語に分類されます。機械語にかなり近いですね。そのため扱いが難しいです。
もし、アセンブリ言語を使う機会があれば、ぜひ試してみてください。
ではまた、明日の記事でお会いしましょう。