Z80について

8080 を拡張した8 ビットのプロセッサでプログラムモデルとして見た場合に8080 用に作られたプログラム も実行できます。演算のほとんどをA レジスタを介して行う専用レジスタの形式を採っています。

 
   レジスタ

8080 のレジスタを含んで 図1 のように拡張されていますF レジスタはフラグの集まりで通常のレジスタと 異なります。8080 ではレジスタ値をメモリ番地として操作するインデックスレジスタの役割にH とL を連結し たHL レジスタやBC,DE レジスタが使えましたがZ80 ではIX とIY が追加されたのでB,C,D,E,H,L の負担 が軽減されています。補助レジスタの追加によって8 個のレジスタが増えましたがこれは主レジスタと切り替え ながら使用しますので同時には使えません。

 
図1:レジスタ
 
   フラグ

フラグは主に演算結果を記憶しているもので 図2 になります一括して扱う場合はPUSH AF やPOP AF な どの命令がありF レジスタで指定します。

 
図2:フラグ
 
   命令表

命令は分岐、データ設置、論理演算、算術演算、ビット操作などがありますビット操作は論理演算で代用する ことも可能ですがZ80 では専用の命令が追加されています。命令表の中で使われている記号の意味は次のとお りです。

  • n は8 ビット定数。
  • lm は16 ビットの定数でl が上位8 ビットでm が下位8 ビット。
  • e は-128〜+127 までの値を相対番地に示すときに使います。
  • d は-128〜+127 までの値をインデックスレジスタのしきいち閾値を示します。
  • × は不定を示します。
  • ●は状態に従って1 になったり0 になったりする場合を示します。
  • -は変化しない場合を示します。
 
図3:命令表(1/13)
 
図3:命令表(2/13)
 
図3:命令表(3/13)
 
図3:命令表(4/13)
 
図3:命令表(5/13)
 
図3:命令表(6/13)
 
図3:命令表(7/13)
 
図3:命令表(8/13)
 
図3:命令表(9/13)
 
図3:命令表(10/13)
 
図3:命令表(11/13)
 
図3:命令表(12/13)
 
図3:命令表(13/13)
 
図4:RL□動作
FIG4.jpg(5734 byte)
 
図5:RLC□動作
FIG5.jpg(5836 byte)
 
図6:RR□動作
FIG6.jpg(5556 byte)
 
図7:RRC□動作
FIG7.jpg(5418 byte)
 
図8:RLD動作
FIG8.jpg(10931 byte)
 
図9:RRD動作
FIG9.jpg(11957 byte)
 
図11:SLA動作
FIG19.jpg(5405 byte)
 
図12:SRL動作
FIG20.jpg(4865 byte)
 
図13:SRA動作
FIG21.jpg(5080 byte)
 
   命令符の構造
 
   LD R,n
FIG10.jpg(4067 byte)    図10:レジスタ選択
レジスタ
000B
001C
010D
011E
100H
101L
111A
 
   LD R1,R2
FIG11.jpg(3355 byte)

R1とR2の内容は 図10 を参照して下さい。

 
   LD R,(HL)
FIG12.jpg(3118 byte)

Rの内容は 図10 を参照して下さい。

 
   LD (HL),R
FIG13.jpg(3408 byte)

Rの内容は 図10 を参照して下さい。

 
   LD R ,(IX+d)
FIG14.jpg(5411 byte)

Rの内容は 図10 を参照して下さい。

 
   LD (IX+d) ,R
FIG15.jpg(5461 byte)

Rの内容は 図10 を参照して下さい。

 
   LD R ,(IY+d)
FIG16.jpg(5483 byte)

Rの内容は 図10 を参照して下さい。

 
   LD (IY+d) ,R
FIG17.jpg(5333 byte)

Rの内容は 図10 を参照して下さい。

 
   LD (HL) ,n
FIG18.jpg(4202 byte)
 
   LD (IX+d) ,n
FIG22.jpg(6193 byte)
 
   LD (IY+d) ,n
FIG23.jpg(6122 byte)
 
   LD A,(BC)
FIG24.jpg(3645 byte)
 
   LD (BC),A
FIG25.jpg(3580 byte)
 
   LD A,(DE)
FIG26.jpg(3541 byte)
 
   LD (DE) ,A
FIG27.jpg(3482 byte)
 
   LD A ,(n'n)
FIG28.jpg(4788 byte)
 
   LD (n'n) ,A
FIG29.jpg(4778 byte)
 
   LD A ,I
FIG30.jpg(4667 byte)
 
   LD I ,A
FIG31.jpg(4795 byte)
 
   LD A ,R
FIG32.jpg(4646 byte)
 
   LD R ,A
FIG33.jpg(4583 byte)
 
   LD RP,n'n
FIG34.jpg(5204 byte)

Rの内容は 図14 を参照して下さい。

 
図14: レジスタペア選択
FIG35.jpg(5641 byte)
 
   LD IX,n'n
FIG36.jpg(6424 byte)
 
   LD IY,n'n
FIG37.jpg(6313 byte)
 
   LD HL,(n'n)
FIG38.jpg(4919 byte)
 
   LD (n'n),HL
FIG39.jpg(4827 byte)
 
   LD RP,(n'n)
FIG40.jpg(6230 byte)

Rの内容は 図14 を参照して下さい。