***本記事にはプロモーションが含まれています。***
熱血!アセンブラ入門を買ってきました。
Amazonとかだと、売り切れになっているみたいですが本屋に寄ったら置いてあったので買いました。
ずいぶん厚いです。
一番気になったのが、いろいろなタイプのCPUのプログラムを実行させる時に、どうやっているかということ。
gdbをソースコードからコンパイルするとsimというディレクトリにシミュレーターが付属しています。
クロス環境でgdbを作ると、そのシミュレーターが作られ、単独で動かしたりgdbに組み込まれたりしています。
本の中では、Hello World!を表示する簡単なプログラムを動かしています。
その時、標準ライブラリなど一切使わずに動作させます。
そのため、プログラムの実行と終了に必要な簡単なライブラリを実装します。
プログラムの表示する部分は、そのシミュレーターに合わせてライブラリを実装することによって表示させています。
具体的には、writeやprintfを使ったときにシミュレーターが備えている表示機能を使うようにプログラムを作っていました。
こうした作業を、各CPUのシミュレーターに合わせてやっていました。
ドキュメントが十分あるわけではないので、シミュレーターのソースコードを見て作っています。
すごいとしか言いようがありません。