2012年11月23日金曜日

ラインアセンブラ2

例のこれが、だいたいまとまってきた。
字句解析、構文解析、命令とオペランドのデコード、Emulated命令→Native命令変換までは、先週と今週の月~木までかけて帰宅後1時間ずつで実装した。
ダイビングに行ったり、飲み会に行ったりしていたので、あまり集中できず時間がかかった。

今日の朝、Emulated命令→Native命令の動作確認をした。
いくつか間違いが見つかった。
毎日1時間ずつだと、途中で考えが変わったり、また全体を見ないので、不整合を見落としやすい。
昼には単体の動作確認も終わり、いよいよバイナリコードの合成処理を実装し始めた。

似たような命令体系の部分でくくって、系列ごとに実装しながら、単体テストを行った。
(細かくは見ていない。来週以降、しらみつぶしにテストする予定)
テストと同時進行なので、夕方になっても実装作業が終わらなかった。
2命令(POPM, PUSHM)の実装を残して、疲れて来たので作業終了。
明日には、実装が終わるだろう。

来週からは、アセンブラ部分の結合テスト。
事前に作ってある逆アセンブラと組み合わせて、テストをする予定。
逆アセンブラ作成時に、しらみつぶしにテストするコードを用意していた。
それを使えば、テストプログラムの用意も楽だろう。

この手のコードはテストプログラムがとても大切だ。
ソースコードも重要だが、同じくらいテストプログラムも重要である。

0 件のコメント:

コメントを投稿