zoomzoomzoom

解決方法の共有に主眼を置くブログ・他雑談

大熱血!アセンブラ入門part3メモ

アセンブラ出力環境を構築するためのpart。

 

アセンブラ出力までの流れ。

まず、高級言語のコード→オブジェクトコード(コンパイル

次に、オブジェクトコード→実行ファイル(リンク)←一般のmakeはここまで行う。

最後に、実行ファイル→アセンブラ(逆アセンブル)←大熱血提供のmakeはここまで行う。

高級言語のコードからいきなりアセンブラを作り出すこともできるし、オブジェクトコードからobjdumpで逆アセンブルしてアセンブラを作り出すこともできるが、一旦実行ファイルを作成した後逆アセンブルしたほうが、機械語の完全なバイトコードが手に入るとのこと。

 

環境構築:

「クロスコンパイル環境を準備するのはバージョン合わせがあって大変だから全部環境用意しておいたよ。仮想マシンで楽しんでね!」との著者の有難き心意気に感謝してVMで動作させることに。HDDの容量食うけど、環境構築で困るよりいい。この本のサポートサイトから仮想マシンをゲットしてVMで起動。その際、エラーメッセージが出たが、気にせずretryを押すと無事起動できた。

 

VMの使い方:

cross/sample ココに逆アセンブルコードが欲しいC言語のファイルを入れてmakeで実行

cross/exec コンパイル後、gdbでシミュレーションしたい時に利用。make→make runで実行。

 

その他:

環境構築のみ行ったので、APIを利用しないで(自分で対応するアセンブラを書いて)Hello Worldを出力させてみよう、という企画を楽しんでいない。機をみてトライしたい。