第一回でそれなりの規模のCプログラムを書いて標準的なデータ構造を学びました。 第二回はQEMUを使ってARMのバイナリを動かしたり、バイナリを生成したりディスアセンブルしたりするコードを書きます。 OSの無い環境でプログラムを動かす事で、C言語の土台の理解を深める事を目的とします。 QEMUのベアメタル環境を使えるようになる nm, readelf, objcopy, objdumpなどのコマンドに慣れ親しむ 簡単なARMのアセンブリを理解する 簡単なアセンブラとディスアセンブラを作る Cコンパイラの吐くアセンブリ言語を調べる事でC言語の理解を深める(これは第三回にしました) 何故アセンブラと逆アセンブラを作るのか? C言語を勉強しよう、という時に、なんだか関係ない別の言語に見えるアセンブラ言語を学ぼうというのは「なんでよ!?」と思うかもしれません。 そこでここではまず、今回QEMUを使っ