1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsでアセンブリ言語を扱う

Posted at

※この記事はUdon Advent Calendar 2024 - Adventarの17日目の記事です。

はじめに

大学の実験でアセンブリ言語を扱う機会がありました。

自分のPCでアセンブリ言語を扱いたかったので、Windowsでアセンブリ言語を扱う方法をまとめてみました。

MASMのインストール

このページからMASMをダウンロードします。

開いたら一番上のAustralia 1をクリックし、ダウンロードします。

ダウンロードしたzipファイルを解党し、インストーラを起動します。基本的に全部クリックで進めて大丈夫です。

最後にちょっと時間がかかりますが、終了したらウィンドウを閉じます。

環境変数の設定

まずはパスを通します。環境変数PATHC:\masm32\binを追加してください。

インストールが完了しているかは以下のコマンドで確認できます。

ml -v

また、以下の環境変数も設定します。

  • INCLUDEC:\masm32\includeを追加
  • LIBC:\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で使えるようになりました。

アセンブリ言語は低級言語に分類されます。機械語にかなり近いですね。そのため扱いが難しいです。

もし、アセンブリ言語を使う機会があれば、ぜひ試してみてください。

ではまた、明日の記事でお会いしましょう。

参考文献

MASM32アセンブラの使い方①|Uccyan

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?