・実装法の考察

 さて、資料を集めたところで具体的にどうやってZ80を作るか考えてみましょうか。

 取り敢えず解り易いところで、最も一般的と思われる転送命令を例にしましょう。
 

・8bit転送命令(の一部)
ニーモニック OPコード(HEX) OPコード(BIN) OPコード(BIN)
LD r,s 40+(rx8)+(s) 01_r__s_
LD r,n 06+(rx8),n 00_r_110 ___n___
LD r,(HL) 46+(r+8) 01_r_110

r,s Reg.

000 B
001 C
010 D
011 E
100 H
101 L
111 A


 コード一覧だけを見るとたくさんの命令があって難しそうに見えますが、実は多くの命令はビットフィールドが予め決まっていて何をすべきか、バイナリデータを見れば解るようになっています。
 上表は収集した資料より一部抜粋した転送命令ですが中身は、「どこに」、「なにを」転送するかを表しているため表を見るだけで何をすべきかは一目瞭然です。 実装する際も、ケース文でコードをデコードしメモリーI/Fとレジスタファイルをどう繋ぐかを記述するだけ(と言っても簡単でないでしょう.一部の命令・・・ブロック転送とかブロックサーチ命令は間違いなくハードリソースを食いそうな命令ですし、明らかに実装が面倒だろうと察しがつきます)で済む事が解ります。


 ですが・・・

 実装方についてもう少し突っ込んだ考察をしてみましょう。 命令デコーダ、ALUは回路の規模と速度を決定する部分でもありますので色々と考えてみると面白いでしょう。


・デコーダをどう実装するか

 










   -----  続く  -----

  待て次回更新!!



 前のページへ / 次のページへ  


戻る / 研究テーマのTOPに戻る