MikeAssembler リファレンス - Z80

アーキテクチャ名

z80

メモリ空間

Z80のメモリ空間はプログラムとデータで共通で、16ビットのアドレスにより1バイト単位でアクセスできる。

また、8ビットの入力ポートおよび出力ポートを256個ずつもち、8ビットのアドレスにより指定する。

レジスタ

Z80は、以下のレジスタを持つ。

アキュムレータおよびフラグレジスタ

レジスタ説明
Aアキュムレータ (メイン)
Fフラグレジスタ (メイン)
A'アキュムレータ (代替)
F'フラグレジスタ (代替)

アキュムレータは8ビットで、演算の引数や結果を格納する。
フラグレジスタは8ビットで、以下のような演算結果の情報を格納する。

ビット記号名前説明
7 (MSB)SSign Flag演算結果の最上位ビット
6ZZero Flag演算結果がゼロか / 比較や検索で一致したか
5X--
4HHalf Carry Flag8ビット演算の真ん中でキャリーやボローがあったか
3X--
2P/VParity/Overflow Flag符号あり加減算がオーバーフローしたか / ビット演算の結果の1のビットが偶数個か / など
1NAdd/Subtract加算後は0、減算後は1 (10進補正用)
0 (LSB)CCarry Flagキャリーやボローがあったか / シフトではみ出たビット

メインと代替のアキュムレータおよびフラグレジスタの値は、EX AF, AF' 命令により同時に入れ替えることができる。

汎用レジスタ

 メイン代替
レジスタペア上位下位上位下位
BCBCB'C'
DEDED'E'
HLHLH'L'

B, C, D, E, H, L レジスタは各8ビットで、2個のレジスタを合わせて16ビットのレジスタペアとして扱える。
B', C', D', E', H', L' レジスタは各8ビットで、EXX 命令により同時にそれぞれ対応するレジスタと値を入れ替えることができる。

特殊レジスタ

レジスタサイズ名前説明
PC16ビットProgram Counter実行するためにメモリから読み込む命令の位置を格納する。
SP16ビットStack Pointerスタックトップのアドレスを格納する。
IX16ビットIndex Register即値のオフセット付きでメモリにアクセスするときのベースアドレスを格納する。
IY
I8ビットInterrupt Vector割り込みモード2で参照するテーブルのアドレスの上位を格納する。
R8ビットMemory Refresh命令フェッチごとに下位7ビットをインクリメントする。

参考資料


戻る