おわりに

本書をお読みいただきありがとうございました!

機械語を手で書く、しかもそれをコンパイラ等も十分に在るx86_64アーキテクチャで、という内容でしたが、いかがだったでしょうか。「意外と書こうと思えば書けるな」と感じてもらえれば幸いです。

完全にネタ本なのですが、何か役に立つとすれば、高級な言語でも処理を書きながら「機械語に落とし込まれたら何バイトくらいかな」という機械語におけるサイズ感が身につく、とかでしょうか。ただ、機械語の1命令は小さいものでは1バイトから、大きいものでは10数バイトもあったりするし、同じ命令でもオペランドの違いだけでサイズが大きく変わってきたりすることもあるので、高級言語で処理を書きながら機械語の実装をエスパーするのは相当難易度高いかも。。

やっぱり「何かの役に立つものでは無い」のですが。。機械語を書いて実行することで「通訳を介さずにCPUと直接話している感覚」とか、面白がってもらえれば嬉しいです。

あと、本書のサンプルはどれも、「フレームバッファへの書き込み」や「命令フェッチ」を除き、一切メモリアクセスをしないのもポイントです。ただ、これに関してはアセンブラで書いても同じことはできるのですが、少なくともC言語とか、スタックを使うバイナリを自動的に生成してしまう高級言語ではできないことです。ただ、スタックの仕組みを使わないことには、今後大きなプログラムを書いていくのは難しそうですが。。