コンテンツにスキップ

Z80

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Z80 CPU(1993年第45週製造品)

Z80  819761980CPUASICFPGAIP[ 1]

20244Z80[2]

概要

[編集]

退Intel 80808080

2.5MHzZ8020MHz20244

2007FPGAASICIP使使NECμPD70008 IP20IP5

Z80CPU8080CPUS-100197080

21CPUZ80LSI使LSICPU

80808251USART8253CTC / PIT8255PPIZ80Z80SIOZ80CTCZ80PIOZ80DMAZ-801

[3]Z8Z80使

ハードウェア

[編集]

Z80 8080CPU80805V1664KiBMMU

Z80Z80CMOSNMOSNMOSCMOSNMOSZ802.5MHzZ80A4MHzZ80B6MHzZ80E[ 2]Z80H8MHz[4]8,200CMOSZ84C00066.17MHzZ84C00088MHzZ84C001010MHzZ84C002020MHzZ80H(40DIP)1982100019.95[4]Z80HZ8500Z8530Z8531Z8536/I/OZ8538I/OZ8060 FIFOZ8516 [4]

808082IXIY2使DRAMR

80800RST381Z80LSI1282080808259使12Z80LSICPULSILSI8259

NMI ( Non Maskable Interrupt ) 

16IX, IY8使Z280Z-80HD64180

Z80NMOSCMOS()Zilog34486827[5]1984124(2)PC()[6]

使使使6Z-80[7]

特徴

[編集]

80801M13M12M142使

3(T1/T2/T3)IN/OUT(TW)4(T1/T2/TW/T3) /WAIT(active low) IO[8]

8080Z80M1

Z80Z80

Z808CPU-128+127PC使使-1280127C

8

レジスタ

[編集]
Z80-CPU

A,B,C,D,E,H,L8080F8080 8Z80使 RZ807LSICPUCPU8CPUR

*8080
b7:S 

b6:Z 

b5:使 0

b4:H AUXBCD

b3:使 0

b2:P/V * 8080P

b1:N * ADD0SUB18080使0

b0:C 

命令セット

[編集]

80808080OSCP/M

Intel8080Intel 8085

Z80i8080i8085 "LD"  "LD" i8080i8085使HL

Z808080Intel 8080#IXIYIX
  • 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ビット)を表す。

転送・交換命令

[編集]

LD r,(IX+d)

LD (IX+d),r

r(HL)

LD (IX+d),n



LD IX,nn



LD IX,(nn)



LD (nn),IX



LD BC,(nn)

LD DE,(nn)

LD SP,(nn)

168080HL

LD (nn),BC

LD (nn),DE

LD (nn),SP

168080HL

LD SP,IX

SP

EX AF,AF'

AFAF'

EXX

BC,DE,HLBC',DE',HL'

LD A,I

LD I,A

ALD A,I使NMOS[9]NMOSCMOSTMPZ84CxxHD64180 R0HD64180R1ZLH5080NEC μPD70008

LD A,R

LD R,A

AZ80R7LD A,R使CPU8

LD A,RLD A,I

算術演算命令

[編集]
ADD IX,rx
16ビットレジスタの内容をインデックスレジスタに加算する。
ADC HL,rr
16ビットレジスタの内容とCフラグをHLレジスタに加算する。ADD命令は8080から存在した。
SBC HL,rr
16ビットレジスタの内容とCフラグをHLレジスタから減算する。なお16ビットのSUB命令はない。そのため8ビットの算術演算命令のうちSUB命令だけAを表記しない。
INC IX
インデックスレジスタの内容をインクリメントする。
DEC IX
インデックスレジスタの内容をデクリメントする。
NEG
Aレジスタの2の補数をとる。

ローテート・シフト命令

[編集]
RLC r
RLC (IX+d)
レジスタまたはメモリの内容とCフラグを連結して左ローテートする。RLC Aと8080からあるRLCAとではフラグの変化が異なる。
RRC r
RRC (IX+d)
レジスタまたはメモリの内容とCフラグを連結して右ローテートする。RRC Aと8080からあるRRCAとではフラグの変化が異なる。
RL r
RL (IX+d)
レジスタまたはメモリの内容を左ローテートする。RL Aと8080からあるRLAとではフラグの変化が異なる。
RR r
RR (IX+d)
レジスタまたはメモリの内容を右ローテートする。RR Aと8080からあるRRAとではフラグの変化が異なる。
RLD
RRD
Aレジスタの下位4ビットとHLを連結して4ビット単位でローテートする。BCD用の命令。
SLA r
SLA (IX+d)
レジスタまたはメモリの内容を左に算術シフトする。
SRA r
SRA (IX+d)
レジスタまたはメモリの内容を右に算術シフトする。
SRL r
SRL (IX+d)
レジスタまたはメモリの内容を右に論理シフトする。

ビット操作命令

[編集]
BIT b,r
BIT b,(IX+d)
レジスタまたはメモリの特定のビットをテストする。
SET b,r
SET b,(IX+d)
レジスタまたはメモリの特定のビットをセットする。
RES b,r
RES b,(IX+d)
レジスタまたはメモリの特定のビットをリセットする。

ジャンプ・コール・リターン命令

[編集]

JR e



JR NZ,e

JR Z,e

JR NC,e

JR C,e



DJNZ e

B0(Decrement and Jump if Non Zero)使

JP (IX)

PC

RETI



RETN

NMI

スタック操作命令

[編集]
PUSH IX
インデックスレジスタの内容をスタックにプッシュする。
POP IX
スタックトップの内容をインデックスレジスタにポップする。
EX (SP),IX
インデックスレジスタとスタックトップの内容を交換する。

入出力命令

[編集]
IN r,(C)
OUT (C),r
CレジスタまたはBCレジスタによる間接指定の入出力。rに(HL)は指定できない。

CPU制御命令

[編集]
IM x
割り込みモードを設定する。xの値は0〜2。

ブロック命令

[編集]

808680186/V30I/OLDIR使

LDI/LDD/LDIR/LDDR

HLDEDE,HL/BCLDIRLDDR使

CPI/CPD/CPIR/CPDR

AHLHL/BC

INI/IND/INIR/INDR

CI/OHLHL/B

OUTI/OUTD/OTIR/OTDR

HLCI/OHL/B

I/Oポート

[編集]

Z8080800FF(255)I/O88I/OCBA

I/O16VRAMVRAMX1SMC-777BUBCOM80MZ-1500RAMMZ-1R1864KB使[10]

16I/OI/OBCOUT8ABCOUTSONYSMC-70I/O88I/O88BCOUTI/OOUT使

B16使B81

Z80の互換CPU

[編集]

LH0080MK3880(NEC)μPD780
LH0080A
μPD780C-1
μPD70008AC-4

Z-80NMOSNECZ80AμPD70008AC-4Z80HμPD70008AC-8LH5080TMPZ84C00CMOS

2002Z80MZ-80CCPU

U880MMN80CPUT34

派生品

[編集]

CMOSIntel 8085Z80NSC8008085

2003LSIASICIPZ80Z80 IPALU4LDxLDxR使

他社によるZ80上位互換CPU

[編集]

Z80CPU
HD64180SY10
R800 CPU
TMPZ84C015AF

TLCS-Z80

Z8011983

TMPZ84C00AP-6

6Mhz

TMPZ84C00AP-8

8Mhz

TMPZ84C00AM-6

6Mhz

TMPZ84C00AM-8

8Mhz

TMPZ84C011

 CMOSZ80CPUZ80CTCZ80PIOI/O

TMPZ84C013

 CMOSZ80CPUZ80CTCZ80SIO

TMPZ84C015

 CMOSZ80CPUZ80CTCZ80PIOZ80SIOCGCZ84C15TMPZ84C015

TMPZ84C112

 CMOSZ80CPUZ80PIOI/O256RAM

TMPZ84C20AP-6

 TLCS-Z80 PIO : PARALLEL INPUT / OUTPUT CONTROLLER

TMPZ84C710

 CMOSZ80CPUISDNZ80SIO

TMPZ84C711

 CMOSZ80CPUISDNZ80SIOZ84C710

TMPZ84C810

 CMOSZ80CPUZ80CTCZ80SIOI/ODMAMMUDRAM

HD64180

 1984Z80MMU512KB1MBTSTIX/IY8使Z80CP/M-80CPU68HD64180R1Z80HD64180ZHD64180ZZ801802022

MSX-ENGINE

MSX CPUMSX使LSISANYO 1985 MPC-1 MSX1T7775T7937T9763T9769(MSX-ENGINE2)

μPD9002

NEC V198734PC-88VA使V30808680808086Z80VμPD70V30V50Intel 8086PC-88VA2/3V308087-1

R800

16Z80CPU19904使使IX/IY8R8MSXturboRCPU使MMUDMAMSX使

KC80, KC82

Z80CPUKC80KC82MMUICKL5C8012KL5C8016KL5C8020KC80 CPU KL5C8400 16KC1601994200971

後継CPU

[編集]

CPU

Z180

HD64180ZZ64180HD64180Z/Z64180Z80180Z8S180

Z800

Z8016CPU16PCSPIXIYMMU256byteRAM使使Z808Z80-BUS16Z-BUSMMU512KB16MB4 (Z8108,Z8116,Z8208,Z8216) C-MOSZ280

Z280

Z800CMOSZ800Z-BUS16MBZ8216

Z380

199325Z8032CPU1644GBDRAMINT03Z8000

eZ80

3Z803[11]50MHz2416MByteRabbit 2000/3000/4000/5000

Z80に類似のアーキテクチャー

[編集]

Z-80TLCS-90TLCS-900Rabbit2000Z-80 Z-80SHARPLR35902 Z80CPU

LR35902

Z80Z80CPU1989421CPU4.19MHz8.39MHz Intel 8080 Z80 Custom Z80  GB Z80 

TLCS-90

TMPZ84Cxxx Z80CPU IX, IY20bitSPPC64KB


TLCS-870 

Z80Z80


TLCS-900

TLCS-9016/32CPUTLCS-90使使CPUTLCS-90IZFAW16WA

Rabbit2000

Rabbit 2000Z80Rabbit2000Rabbit3000Rabbit4000Rabbit5000Rabbit20008bitRabbit4000/500032bit32bit Rabbit2000/3000/4000/5000HD64180/Z180en:Zilog Z80#DerivativesPartly compatibleeZ80

RL78

8bit/16bit CPURL78Z80[12]

主な開発環境

[編集]

Z80は、8080とバイナリレベルで互換性があり、そのDOSであるCP/M、及びCP/M上で動作する各種のソフトウェアが利用可能である。以下はCP/M上の動作を前提に供給されたものの一部である。

脚注

[編集]

注釈

[編集]


(一)^ CPUZ80CPU使[1]

(二)^ LH0080/AHDIP使

出典

[編集]


(一)^ //Z80

(二)^ Zilog Calls Time on the Venerable Z80, Discontinues the Standalone Z84C00 CPU Family (huckster.io)

(三)^ Insider's Computer DictionaryZ80  - IT. atmarkit.itmedia.co.jp. 2021831[]: date=yyyymdate=data=

(四)^ abcASCII 198212, p. 75.

(五)^ https://patents.google.com/patent/US4486827

(六)^ http://www.primrosebank.net/computers/z80/z80_special_reset.htm

(七)^ p. 142

(八)^ Z80 CPU User Manual. zilog.com. p. 11 (2016). 2020128[]: date=yyyymdate=data=

(九)^ Z80 Z80IFF2.    (1997617). 2018116[]: date=yyyymdate=data=

(十)^ MZ-1500 

(11)^ "eZ80 CPU User Manual"

(12)^  [1] 2023623

参考文献

[編集]

, :400419878ISBN 400006021X 

ASCII 1982126121982121 

関連項目

[編集]

外部リンク

[編集]