Mac OSXでi386のアセンブラのコンパイルとリンク

「自作エミュレーターで学ぶx86アーキテクチャー」という本を読んでいて、Linux, Win7上でのx86のEmulatorを作るためのお勉強をしています。

同じ事をMac OSXで行おうとしたところ、コンパイルとリンクでいくつかハマった事があったので記録しておきます。

1.コンパイル

gccをコンパイルする際に、32bitで行うには -m32 オプションをつけます。

gcc -m32 -S -o hogehoge.s hogehoge.c // assembler source
gcc -m32 -c -o hogehoge.o hogehoge.c // object file

2.リンク

リンカーのオプションでハマりましたが、色々調べたところ、結局上のLDFLAGSのオプションで行けました。

3.Disassembler

ファイルタイプとディスアセンブルは以下で出来ました。Objdumpでも行けると思いますがインストールされていないようだったので。


file hogehoge // file type check
otools -vt hogehoge // disassembler

追記

普通に何も考えずに

gcc -m32 -o hogehoge hogehoge.c

で、32bitのコードが生成されていたので面倒な事をやらず、これではじめからやれば良かったようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*