しばらくこのテーマはできていませんでしたが一気に6thステップの最後までやりました。

ブート・ローダとそれによって起動されるプログラムという2本立て構成で動作することを確認しました。

6thステップの終わりと同時に第1部ブート・ローダの作成の終わりとなり、いよいよ第2部OSの作成に入ります。

これからが本番ですね。がんばらなくちゃ。


分岐命令の拡張について書いてあるセクションを読みました。

少しずつ命令を追加していく過程を見ているとそれらの命令の必要性が実感できるので良いですね。今まではこのCPUはこの命令があるので使えという頭ごなしのような感覚しか持てなかったですから。拡張した命令でかかれているサンプルプログラムの動作も理解しました。

アセンブラが提供されているのですがRubyで書いてあるとのこと。Linuxなら即動くそうです。Windowsでも使えるのかもしれませんが自分のPCが貧弱なのでRubyの環境を入れてトラブるのも面倒。それほど難しくはないと思われるのでアセンブラをCで作ろうかな。

...と、タイミング良く言語処理系の勉強会を発見!!

勉強会に参加しながらアセンブラを作れば面白そう。でも本当に時間がとれるかなあ。。思案中。。。

残りの演習問題も正しく動作し、第5章が終わりました。

今後ですが、本のページ数で言えばまだ半分位残っていますが、第6章では命令を追加して一通り使えるレベルにし、第8章ではI/Oや割り込みを追加します。

それ以外は高速化のための拡張ですのでソフトをより足元から理解したいためにCPU設計を勉強している自分の立場からすると必ずしも必要ではありません。ソフトから直接見える部分ではないからです。

よって第6章と第8章をやったら一旦この本から離れるかもしれません。他にも勉強したいことは色々あるので。