Mac OS Xでアセンブリ
Contents
はじめに
Mac OS X での、
- アセンブラのインストール
- アセンブリを実行形式まで
です。
アセンブラインストール
まずはアセンブラをインストールします。 今回は NASM というアセンブラを使います。1
Homebrew で入るのは古いので、ソースからビルドします。 パスは適当に通してください。
wget http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/nasm-2.12.02.tar.gz
tar zxvf nasm-2.12.02.tar.gz
cd nasm-2.12.02
./configure --prefix=$HOME
make -j4
make install
アセンブル
アセンブリのプログラムを書いて、アセンブルしてみます。
x86_64 アセンブリ2の Hello World です。
section .data
hello_world db "Hello World!", 0x0a
section .text
global start
start:
mov rax, 0x2000004
mov rdi, 1
mov rsi, hello_world
mov rdx, 14
syscall
mov rax, 0x2000001
mov rdi, 0
syscall
アセンブルは次のコマンドです。
~/bin/nasm -f macho64 helloworld.asm
-f は出力形式を示すオプションです。Mac だと macho64 にしておくのが無難です。
そうすると、helloworld.o というオブジェクトファイルが出力されます。
$ ls
helloworld.asm helloworld.o
$ file helloworld.o
helloworld.o: Mach-O 64-bit object x86_64
最後に、オブジェクトファイルをリンクします。
ld helloworld.o
a.out という実行ファイルが出力されるので、そいつを実行すれば Hello World! と表示されます。
$ ./a.out
Hello World!