標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第180回]

●80アセンブラを作ってしまいました

前回説明をしました論理演算命令の動作テストはすでに済ませてしまっているのですが、大急ぎでテストをしたので、ステップ動作をさせて写真を撮ったりなどはしていませんでした。
ですから、またいつものように、トグルスイッチをパチパチさせてプログラムをRAMに書き込もうとしたのですが。

せっかく232Cの送信、受信テストもしたことですから、パソコンからプログラムを送信できるようにしたらどうだろう。
いや、それは、最終的には、そうするつもりでしたよ。

基板配線の修正作業に入るまえに、最終的に全部の命令の動作テストをもう一度、やっておいた方がよいと思っています。
そうなると、命令ごとに適当に分割して、何本かのプログラムにしたとしても、全体ではかなりのプログラムになると思いますから、それを全部、トグルスイッチでパチパチやるっていうのは、いくらなんでも愚かのきわみ、です。

でも、そうするためには、いろいろ準備が必要です。
まず、第一に、アセンブラを用意することから始めなくてはなりませぬ。
うー。まさに狂気の沙汰ですねぇ。

PC上で動くアセンブラはあります。
昔作って今も現役の、当社オリジナルのZ80アセンブラです。
それを使えばいいのですけれど…。
ニーモニックはZilogですけれど、作成されるオブジェクトコードは、8080互換なのですから、実用上は、問題なし、です。

ところが、ですねぇ。
こうやって、毎日のように、インテルニーモニックを使って命令の説明や、プログラムの説明を書いていましたら、いつのまにか、頭の中では、インテルニーモニックがはばをきかせてしまって、ずっと30年近くも、Z80とつきあってきたはずなのに、ザイログニーモニックが片隅に追いやられてしまったようなのです。

いずれ、キットとして世に出すときには、80アセンブラも供給するつもりでいましたし、さきほど書きましたように、テストプログラムを書くためにも、そりゃあ、あったほうがよいに決まっています。
そうそう。TK80のモニタROMの作成作業には、アセンブラは必須になりますし。

ということで。
狂気の沙汰とは思いつつ、この際、カクゴを決めて、80アセンブラを作ってしまおうか。
昔、昔のZ80アセンブラのソースプログラムリストを引っ張り出してきて、インテルニーモニックの80アセンブラに改造する作業にとりかかりました。

このZ80アセンブラはDOS窓(DOSプロンプト)で動作する、COMプログラムです。
どうやって作ったかといいますと、これも当社オリジナルの、8086アセンブラで作りました。
全部オリジナル、手作りです。

ちなみに、余談ですけれど、この8086アセンブラはどうやって作ったか、といいますと。
まだ、Windowsパソコンが出来る前、NECのPC9801を使っていまして、そのころに、N88BASICを使って、8086アセンブラの初期的なものをまず作成したのです。
次に、やっと動作するようになった、原始的な8086アセンブラを使って、自分自身を作り上げていったのです!
今から思うと、我ながら、よくやったと思います。

そんなことに比べれば、今回の、Z80アセンブラを8080アセンブラに改造するくらいは、やる気になれば、たいしたことではありませぬ。

この間の日曜日に一日で作ってしまいましたよ。
さっそく、ご披露申し上げます。

●これはソースプログラムです

インテルニーモニックで書いたソースプログラムです。
notepad(メモ帳)などのテキストエディタで、ふつうに書きます。
ニーモニックは半角大文字を使います。



適当な名前で保存しておきます。
そして、いよいよこれを8080アセンブラでマシン語コードに翻訳します。

●DOS窓で実行



まだベータ版ですから、asm80b.comです。
ここで[Enter]をキーインすると。

こうなります。


オブジェクトコードだけからなる、バイナリファイルboot.binが作成されます。

DOS窓に表示されたアセンブルリストです。

ソースプログラムのニーモニックから、マシン語コードが生成されています。
JMP命令のジャンプ先は、ラベルの置いてあるアドレスになっています。

さて、このプログラムは何のプログラムでしょうか?
というところで、残念ながら、本日は時間がなくなってしまいました。
この続きは、また次回にいたします。
2009.3.10upload

前へ
次へ
ホームページトップへ戻る