Z80 は、米国ザイログ社によって製造された 8ビット・マイクロプロセッサである。1976年に発表され、1980年代の中頃までは、パーソナル・コンピュータのCPUとしてなど、幅広い用途に使用された。以後も周辺デバイスを集積した製品が出されるなど、現在でも組み込み用途等、目に見えないところで多用されている。
目次
1 Z80の概要
2 仕様(ハードウェア)
3 仕様(アセンブラ)
4 特徴
5 レジスタセット
6 命令セット
6.1 転送・交換命令
6.2 算術演算命令
6.3 ローテート・シフト命令
6.4 ビット操作命令
6.5 ジャンプ・コール・リターン命令
6.6 スタック操作命令
6.7 入出力命令
6.8 CPU制御命令
6.9 ブロック命令
7 I/Oポート
8 ザイログ以外のZ80
9 他の主なZ80互換CPU
10 後継CPU
11 主な開発環境
//
嶋正利らインテルを退社した8080の開発スタッフが設計を行っており、8080とはバイナリレベルで上位互換性がある。
ザイログ社オリジナルの製品としてクロック周波数が2.5MHzのZ80から20MHzの派生製品まで、各社からセカンドソースや互換製品が製造されている。現在では実チップではなく、FPGAやASIC用のIPコアとして活用されている。(パチンコの主基板向けプロセッサに使われているNECのμPD70008 IPをはじめ、商用の互換コアは20社以上存在し、オープンソースのIPコアも5種類以上存在している。)
Z80とその互換CPUは、当初はより高速な8080互換CPUとして応用され、S-100バス互換機にもこぞって搭載されるなど、黎明期のパーソナルコンピュータ市場を支配した。日本国内においても、1970年代の末から80年代前半頃にかけて、ビジネス用のオフィスコンピュータなどの他、各社のホビーパソコンにも搭載された。
また組み込み用としては21世紀に至るまで応用され続けて来ており、多数の機器に搭載されたほか、初期のゲーム専用機などにも搭載されていた。 パチンコ・パチスロの抽選を司る主基板部分のコアCPUにはZ80ベースのカスタムLSIが使われており、もっとも消費量の多い分野の一つである。
その他、8080と組み合わせられる8251(USART)、8253(CTC/PIT)、8255(PPI)でファミリを構成していたのに対応して、Z80SIO、Z80CTC、Z80PIOや、Z80DMAでZ-80ファミリを構成する。また、これらを組み合わせたマイコンがある。
開発者の間では、しばしば「ぜっぱち」と略して呼ばれることが多い。しかし、同社ではZ8というCPUもあり、混同されることがあるので注意されたい。
Z80は、インテルの Intel 8080マイクロプロセッサ の改良型といえる製品であり、 他のIntel系CPUと同じくリトルエンディアンである。8080に対して、若干のアーキテクチャの拡張、電源の 5V単一化、より高いクロック周波数への対応などが図られた。メモリ空間は16ビット(64KB)であり、それ以上のメモリ空間を操作する場合には、MMUなどを追加しバンク切り替えなどを行う必要がある。
最大クロック周波数は、Z80(2.5MHz版)、Z80A(4MHz版)、Z80B(6MHz版)、Z80EもしくはZ80H(8MHz版)など、末尾のアルファベットの有無と種類で識別する。トランジスタ数は8,200個。
8080からのアーキテクチャの拡張では、DRAMの情報を維持(リフレッシュ)する機能の内蔵とそのためのレジスタの追加、8080では1組であった汎用レジスタ群を、切り替えて使用できる表と裏の2組とし、また、2つのインデックスレジスタ(IXとIY)を使用したメモリ操作を含む命令の増強、割り込みモードの追加、ワイヤードロジックによる命令の実行、などが行われている。乗算・除算命令は8080同様に存在しない。
また、本来16ビット固定のインデックスレジスタ(IX,IY)を8ビット単位に分割して使用できるなど、ロジックの設計上で派生したと思われる、命令表には存在しない隠し命令が存在した。これらの一部はZ280のマニュアル中で正式にドキュメント化されている。
8080に対して上位互換性を持ち、8080用のバイナリをそのまま実行できるが、アセンブリプログラミングの際に命令を書き表すための「ニーモニック」は、8080のバイナリに対応する命令でもインテル版とザイログ版では全く異なっており、記述の容易さが勘案され、より整理されたものとなった(これは初心者にも判りやすいとされる反面、他のCPUのニモニックと比較して、アドレッシングモードがはっきりしない、という欠点もあった)。