ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
ZiLOGのZ80の上位互換16ビットマイクロプロセッサー(事実上の32ビットマイクロプロセッサー)の一つ。
Z380最大の特徴は、32ビットアドレスバスである。
Z80上位互換でありながら、32ビットマイクロプロセッサーであることが、他に比類ない最大の特徴なのである。
これは、MMUでも、8086のような「セグメント:オフセット」でもない、完全にリニアな32ビット、4Giバイトのアドレス空間である。
また、I/Oポート空間も同様に4Giバイト存在する。この環境に対応するため、16/24ビットの相対ジャンプや、8/16/24ビットの相対CALL命令などが追加され、Z80で弱かったリロケータブルなプログラムを作れるようになった。
レジスターはBC/DE/HL/IX/IYが32ビット化されていて、それにZ80と同様、裏レジスターがある。そしてこれが4バンクある。
レジスターの内容交換命令もEXXに加え、EXXX、EXXY、EXALL、EX XY,XY'、SWAPなどが用意されている。
互換性のため、ネイティブモードと拡張モードが存在する。
ネイティブモードではプログラムカウンターはFFFFHの次は0000HでありZ80と互換性があるが、拡張モードではプログラムカウンターはFFFFHの次は10000Hへと桁上がりする。
またネイティブモードであっても、拡張命令により、この64Kiバイトを超えたアドレスへアクセスすることができる。
Z80ならば8080に対して「ED」や「CB」でエスケープした。更に「DD-CB」、「FD-CB」がある。Z180も同様である。
Z380で命令を追加するにしても、Z80命令セットはあまり大胆な命令拡張の余地がない。そこでZ280と同様に「DD」、「FD」、「ED-CB」、「DD-ED」、「FD-ED」によるオペコード空間の拡張を使っている。
「DD」や「FD」がIX/IYの拡張以外にも使われており、命令の拡張部分は無法地帯と化している。
従来の16ビットアドレッシングに、更に24/32ビットアドレッシングが加わっているため、アドレスが関わる命令は事実上3倍に増加することになる。しかしオペコード空間には、その全てを格納する余裕がない。
そこでザイログは、この拡張をプリフィックスであるデコーダ・ディレクティブ(DDIR)命令によって解決させた。DDIR命令を目的の命令に前置することで32ビットアドレスが扱えるようになる。
Z80ではIX/IYはHLの置き換えという印象が強く、IX/IYとHLとの間の命令は存在しなかったが、Z380には次のような命令がある。
他に、LD IX,(HL)やLD HL,(IX+d)といったような命令もある。Z380では、IX/IYは独立したレジスターという扱いのようであり、このために不足する命令を追加している。
また、IX/IYレジスターの8ビットアクセスが正式サポートされている点はZ180等に対する(ある種の)アドバンテージと言える。
一方で、Rレジスターは単なる汎用レジスターとなりリフレッシュレジスターのエミュレート機能を持たないので、乱数の種に使うことができない。
Z80には、JP命令に対し、相対JP命令としてJRがある。しかしCALLに対する相対CALL命令はなかった。
Z380には、相対CALL命令としてCALRという命令がある。オフセットに8/16/24ビットが用意され、次のように符号化されている。
オペコードバイトを共通にし、DD/FDでオフセット長を切り替えている。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます