Z80
東芝 CMOS版Z80CPU、ISDN基本インターフェイス、Z80SIO等を集積したチップ。
8080に存在する命令についてはパリティフラグを除く挙動とバイナリは同一となり、基本的には上位互換であるため非互換部分に留意すれば同一のバイナリを動作させる事も可能である。
Intelによる8080の上位互換プロセッサであるIntel 8085とは拡張部分の命令セットや挙動が違うため非互換である。
バイナリこそ互換性があるものの、ザイログ社が定義したZ80のニモニックは、インテル版と全く異なるものとなっている。記述の容易さが勘案され、より整理されたものとなった。但し、これは初心者にも判りやすいとされる反面、他のCPUのニモニックと比較して、アドレッシングモードや実際の命令がはっきりせず、単純化された結果、使えない組み合わせのオペランドの区別がしにくいなどの状況が発生している。オペランドの順番は、ディスティネーションが前でソースが後である。また、オペコードの仕様上、HLレジスタとインデックスレジスタ間での処理は組み合わせに制限がある。
ここではZ80で追加された命令のみ示す。8080からある命令についてはIntel 8080#命令セットを参照。また、IXとIYについては同等の命令が存在するが、ここではIXのみを示す。
rは8ビットレジスタA,B,C,D,E,H,Lまたは(HL)を表す。
rrは16ビットレジスタBC,DE,HL,SPを表す。
rxは16ビットレジスタBC,DE,IX,SPを表す。
nは8ビットの即値を表す。
nnは16ビットの数値(即値またはメモリアドレス)を表す。
bはビット位置0~7を表す。
dはインデックスレジスタの変位(符号つき8ビット)を表す。
eはプログラムカウンタの変位(符号つき8ビット)を表す。
レジスタまたはメモリの内容を右に算術シフトする。
Z80は、8080とバイナリレベルで互換性があり、そのDOSであるCP/M、及びCP/M上で動作する各種のソフトウェアが利用可能である。以下はCP/M上の動作を前提に供給されたものの一部である。
BASIC BASIC80
アセンブラ MACRO80(英語版) MAC/RMAC
C言語 BDS-C LSI C-80 Hitech-C
レジスタまたはメモリの特定のビットをセットする。