結局、昨日の夜、食後にPUSHM, POPMも書いた。
過去に作ったMotorola-Sレコードにしたバイナリを逆アセンブラでアセンブリ言語化して、それをラインアセンブラに食わせた。
昨日の段階で、サイズが同じになることは確認していた。
今日になって、バイナリを逆アセンブラに食わせて、そこから出てくるコードをラインアセンブラに食わせて、それを最初に入力したバイナリと比較するテストプログラムを作成した。
色々な部分で間違いが見つかった。
対向試験で逆アセンブラにも間違いが見つかるかとも思ったが、間違いがみつかったのはラインアセンブラのみだった。夜1時間ずつ、2週間で書いたものだ。特にバイナリの合成なんて、昨日半日で書いたものだ。こんなもんだろう。
1~2時間で完全に一致するようになった。
テストに用いたデータはCコンパイラが吐いたバイナリなので、あまりトリッキーなコードではない。
多分まだまだBugがあるだろう。
洗濯物をしたり、なんだかんだで、今日はこれくらいしかできなかった。
明日は海へ潜りに行く予定。
0 件のコメント:
コメントを投稿