Você está na página 1de 8

O Z80: Exemplo de um Arquitectura do Z80

microprocessador de 8 bits
Barramento de dados (8 bit)
A abordagem ao microprocessador Z80 Descod.
e Reg. de Controlo
tem por objectivos principais: controlo instruo barr. dados
Analisar uma arquitectura com boas
caractersticas pedaggicas e inmeras Sinais de
aplicaes aos longo dos (muitos) anos controlo Registos ALU
do CPU
Relacionar a arquitectura do microprocessador do CPU e
sistema Sinais de controlo
com os elementos exteriores necessrios
(internos) Controlo
implementao de um pequeno sistema de endereos
Barramento de endereos (16 bit)
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 1 J. M. Martins Ferreira 2

Z80: Configurao de pinos Z80: Configurao de pinos


A11 1 40 A10
/M1 A12
A13
2
3
39
38
A9
A8
Barramento de
Controlo /MREQ A14
A15
4
5
37
36
A7
A6
/IORQ endereos (16) CLK 6 35 A5
do
/RD D4 7 34 A4
sistema /WR Z80
D3
D5
8
9
33
32
A3
A2

/RFSH Barramento D6 10 31 A1

CPU de dados (8)


+5 V (Vcc)
D2
11
12
30
29
A0
0 V (Gnd)
/HALT D7
D0
13
14
28
27
/RFSH
/M1
Controlo /WAIT Controlo do D1 15 26 /RESET
/BUSRQ /INT 16 25 /BUSRQ
do barramento /NMI 17 24 /WAIT
/INT /BUSAK /HALT 18 23 /BUSAK
CPU do CPU
/NMI /MREQ
/IORQ
19
20
22
21
/WR
/RD
/RESET Clock
FEUP / LEEC MP (2000 / 2001) Vcc Gnd FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 3 J. M. Martins Ferreira 4
Leitura de um cdigo de
instruo Leitura de um operando
T1 T2 T3 T4 T1 T2 T3 T4

250 ns 250 ns

CLOCK CLOCK

A[0:15] Endereo vlido A[0:15] Endereo vlido

/MREQ /MREQ

/RD /RD
mn. 50 ns
/M1 D[0:7] Dados
mn. 35 ns vlidos
250 ns
D[0:7] Dados
vlidos mn. 30 ns mx. 75 ns

FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 5 J. M. Martins Ferreira 6

Ciclo de escrita em memria Ciclo de acesso a E/S


T1 T2 T3 T4
T1 T2 T3 T4
250 ns
250 ns
CLOCK

CLOCK
A[0:7] Endereo vlido

A[0:15] Endereo vlido


/IORQ

/RD
/MREQ
mn. 50 ns

mn. 220 ns D[0:7] Dados


/WR vlidos

mn. 80 ns mn. 60 ns /WR mx. 80 ns

Dados no barramento mn. 30 ns mn. 60 ns


D[0:7]
D[0:7] Dados no barramento

FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 7 J. M. Martins Ferreira 8
Interrupes no Z80 Atendimento das interrupes
Cd. instruo Execuo do programa
Quando o Z80 aceita um pedido de Operando
principal
Cd. instruo
interrupo pra temporariamente o que Operando
Ao ser aceite um pedido
de interrupo
suspende-se a execuo
est a fazer para o atender (continuao do programa principal,
do que temporariamente
substitudo pela rotina
/NMI: Permite o pedido de interrupes no Ao concluir-se o
programa)
de atendimento da
atendimento da interrupo
mascarveis interrupo retoma-se
a execuo do
Cd. instruo
Operando
programa principal
/INT: Os pedidos de interrupo neste pino
sero atendidos se o programador o Rotina de atendimento
da interrupo (termina
permitir reti com a instruo de retorno)

FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 9 J. M. Martins Ferreira 10

SP e stack quando atendida Pedidos de interrupo em


uma interrupo /NMI
O pedido de interrupo em /NMI (activo
(SP) transio descendente) fora a execuo
Indefinido PCH da rotina de atendimento, que ter que
Indefinido PCL (SP)
Endereos comear no endereo 0066H
Indefinido decrescentes Indefinido
Esta rotina dever terminar com a instruo
RETN, que garante a manuteno do
(Antes) (Depois) estado imediatamente anterior ao pedido
ser aceite
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 11 J. M. Martins Ferreira 12
Pedidos de interrupo em Permitir / inibir pedidos em
/INT /INT
O pedido em /INT activo ao nvel lgico 0, pode As instrues EI (enable interrupts) e DI
ser atendido nos modos 0, 1 ou 2 (ou ignorado) e (disable interrupts) permitem / inibem o
o retorno deve ser feito com RETI atendimento de interrupes no pino /INT
No modo 0 dever ser forado no barramento de O Z80 dispe de um flip-flop interno (IFF1),
dados uma instruo de restart onde armazena a informao sobre a
No modo 1 tem lugar um salto para a rotina de permisso ou inibio do atendimento a /INT
atendimento com incio em 0038H
No modo 2 o endereo ser dado pelo registo I (MSB)
Existe ainda um outro flip-flop deste tipo (IFF2),
e pelo barramento de dados (LSB) usado durante o atendimento em /NMI

FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 13 J. M. Martins Ferreira 14

Modelo de programao do
RETN e RETI Z80
Durante o atendimento a /NMI deve suspender- O modelo de programao do Z80 pode
se o atendimento a /INT, para evitar que uma representar-se por um diagrama de blocos que
interrupo de baixa prioridade possa sobrepor- inclui os registos e as flags de um
se a uma de alta prioridade microprocessador
O processo de atendimento a /NMI copia IFF1 Esta informao permite-nos o desenvolvimento
para IFF2 e coloca IFF1 em 0, pelo que o valor de programas, mesmo que no conheamos a
de IFF1 deve ser reposto no fim (e por isso o evoluo temporal dos sinais nos pinos ou
retorno de /NMI difere do de /INT) outros detalhes de funcionamento

FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 15 J. M. Martins Ferreira 16
Modelo de programao do
Z80 O registo das flags
8 bit 8 bit 8 bit 8 bit 8 bit 8 bit
H: half-carry - activa quando
A F A F A F h transporte do bit 3 para o 4
B C B C B C
D E D E D E
S Z H P/ N C
H L H L H L V Y
16 bit
Alternate S: sign - activa quando P/V: parity / overflow -
Stack pointer Apontador para a pilha o bit mais significativo conforme o tipo de instruo
register set
Program counter Apontador de programa do resultado 1 N: indica se a ltima operao foi
(conjunto
IY index register IX e IY so usados com Z: zero - activa quando uma adio ou uma subtraco
alternativo
IX index register endereamento indexado o resultado da CY: activa quando h transporte
de registos)
I R instruo tem o valor 0 para alm do bit 7
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 17 J. M. Martins Ferreira 18

Modos de endereamento Modos de endereamento


Imediato (immediate) - LD A,$FF / 3E FF Indexado (indexed) - LD C,(IX) / DD 4E 00
Imediato estendido (immediate extended) - Ao registo (register) - LD A,B / 78
LD HL,1000H / 21 00 10
Indirecto por registo (register indirect) -
Pgina zero modificado (modified page LD A,(BC) / 0A
zero) - RST 00H / C7
Relativo (relative) - JR Z,MARCA / 28 05 Implcito (implied) - CPL / 2F
Estendido (extended) - LD HL,(1000H) / Ao bit (bit) - BIT 3,(IX+7FH) / DD CB 7F
2A 00 10 5E
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 19 J. M. Martins Ferreira 20
Tipos de instrues Tipos de instrues
Transferncia de dados de 8 bits (8-bit Aritmticas e lgicas para dados de 8 bits
load) - LD A,B / 78 (8-bit arithmetic and logical) -
Transferncia de dados de 16 bits (16-bit ADD A,(IY+10H) / FD 86 10
load) - LD HL,1000H / 21 00 10 Genricas do tipo aritmtico e para controlo
Troca, transferncia de blocos e pesquisa do CPU (general-purpose arithmetic and
em blocos (exchange, block transfer, block CPU control) - CCF / 3F
search) - EX DE,HL / EB Aritmticas para dados de 16 bits (16-bit
arithmetic) - ADC HL,DE / ED 5A
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 21 J. M. Martins Ferreira 22

Tipos de instrues Apresentao de um pequeno


sistema de apoio laboratorial
Rotao / deslocamento (rotate / shift)- RLA / 17
Manipulao ao bit (bit set, reset and test) - BIT
5,A / CB 6F
Salto (jump) - JP 20FFH / C3 FF 20
Chamada de subrotinas e retorno (call and return)
- CALL 1000H / CD 00 10
Entrada e sada (input and output) -
IN A,(7FH) / DB 7F

FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 23 J. M. Martins Ferreira 24
U1
27 30 A0 U2 U3
M1 A0
31 A1 A0 10 11 D0 CLK 1 23 D3

Disposio dos componentes


A1 A0 Q0 I1/CLK O1
/MREQ 19 32 A2 A1 9 12 D1 /MREQ 2 22 D2 VCC
MREQ A2 A1 Q1 I2 O2
/IOREQ 20 33 A3 A2 8 13 D2 /IOREQ 3 21 D1
IORQ A3 A2 Q2 I3 O3
/WR 22 34 A4 A3 7 15 D3 A15 4 20 D0
WR A4 A3 Q3 I4 O4
/RD 21 35 A5 A4 6 16 D4 A7 5 19 OUT3 1
RD A5 A4 Q4 I5 O5
VCC 36 A6 A5 5 17 D5 A6 6 18 OUT2 C3
A6 A5 Q5 I6 O6
28 37 A7 A6 4 18 D6 KEY0 7 17 OUT1 2 100n
REFSH A7 A6 Q6 I7 O7
R1
2K2 38 A8 A7 3 19 D7 KEY1 8 16 OUT0
A8 A7 Q7 I8 O8
1 2 18 39 A9 A8 25 KEY2 9 15 DA_CS
HALT A9 A8 I9 O9
R2 2K2 40 A10 A9 24 KEY3 10 14 /M_CS
A10 A9 I10 O10
1 2 24 1 A11 A10 21 /WR 11
WAIT A11 A10 I11
R3 2K2 2 A12 A11 23 VCC /RD 13
A12 A11 I12
1 2 /INT 16 3 A13 A12 2
INT A13 A12
1 2 /NMI 17 4 A14 A13 26 22V10 JP1
NMI A14 A13
R4 2K2 5 A15 A14 1 1 GND OUT0
A15 A14 1 2
/RESET 26 C2 VCC OUT1
RESET 3 4
R5 2K2 14 D0 /M_CS 20 2 100n Q0 OUT2
D0 CE 5 6
1 2 25 15 D1 /WR 27 Q1 OUT3
BUSRQ D1 WE 7 8
23 12 D2 /RD 22 Q2 KEY0
BUSAK D2 OE 9 10
8 D3 Q3 KEY1
D3 11 12
VCC CLK 6 7 D4 DS1230Y Q4 KEY2
CLK D4 13 14
9 D5 VCC Q5 KEY3
D5 15 16
10 D6 R10 Q6 /NMI
D6 17 18
1 13 D7 1 2 Q7 /INT
D7 19 20
C1 1
2K49
2 100n Z80 C5 CONECTOR
2 100n VEE
Y1
1 2
1 U6
3 4
4MHz U5
U7A U7B
U4A U4F D0 3 2 Q0 12 4 2 J1
D0 Q0 B8 V IOUT SAIDA
D1 4 5 Q1 11 + 1 5
D1 Q1 B7
1 2 13 12 CLK D2 7 6 Q2 10 3 7 1
D2 Q2 B6
D3 8 9 Q3 9 2 6
D3 Q3 B5 IOUT TL082
1 D4 13 12 Q4 8
D4 Q4 B4
C8 74HCT14 74HCT14 D5 14 15 Q5 7 8 TL082 2
D5 Q5 B3
2 100p R13 R14 D6 17 16 Q6 6
D6 Q6 B2
1 2 1 2 D7 18 19 Q7 5 16 R8
D7 Q7 B1 COMP
VDD 1 2
1K 1K 1 14 1
OC VR+
DA_CS 11 C7 1 10K
G V
VCC VCC 15 1 2 100n R9
VR- - VLC
74LS373 10K
1 1 DAC0800 VCC
1 2 R11 R12 3 VEE 2
R16 D1 2K49 4K99
10K 1N4148 1 1
U4C U4E 2 2 C6 VCC D4
S1 2 1 VEE 2 100n LED_2
1 2 5 6 11 10 /RESET
VCC
RESET
1 2
R15 1 74HCT14 74HCT14 1 VCC
1K C9 R28
2 4u7 390R
2 VCC VCC 1
2 D5
VCC VCC VCC VCC R25 1 LED_3
1 1 OUT2 1 22 Q1
D2 D3 BC547
VCC U4B VCC U4D 1 1 1 1 LED_0 LED_1 10K 3 2
R17 R18 R19 R20 R21 R22 1
1 2 3 4 1 2 9 8 2K2 2K2 2K2 2K2 R27
2 2 390R
2K2 2K2 2 2 2 2
74HCT14 74HCT14 KEY0 KEY1 KEY2 KEY3 1 1 2
VCC R23 R24 R26 1
390R 390R OUT3 1 22 Q2
2 2 2 2
JP2 BC547
+5V VCC 1 S2 S3 S4 S5 2 2 10K 3
1 VCC
+12V C4 KEY0 KEY1 KEY2 KEY3 OUT0 OUT1
2 VDD
-12V 2 100n
3 VEE
GND
4
1 1 1 1 SITEMA Z80 - SD2
ALIMENTACAO
Size Document Number REV
A JMF / HCM 1.0
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001) Date: December 12, 1995 Sheet 1 of 1

J. M. Martins Ferreira 25 J. M. Martins Ferreira 26

PAL de descodificao:
Descodificao do sistema Equaes
+L 64 C 1 IAW 123k *d:\palasm\examples\z80jmf.pds +

Os endereos atribudos a cada bloco


EQUATIONS



presente esto ilustrados na tabela /MEM_CS = /MREQ*IORQ*/A15
DA_CS = MREQ*/IORQ*/WR*RD*/A7*A6



seguinte: OUT0 := (MREQ*/IORQ*/WR*RD*A7*/A6)*D0 + /(MREQ*/IORQ*/WR*RD*A7*/A6)*OUT0
OUT1 := (MREQ*/IORQ*/WR*RD*A7*/A6)*D1 + /(MREQ*/IORQ*/WR*RD*A7*/A6)*OUT1


OUT2 := (MREQ*/IORQ*/WR*RD*A7*/A6)*D2 + /(MREQ*/IORQ*/WR*RD*A7*/A6)*OUT2
OUT3 := (MREQ*/IORQ*/WR*RD*A7*/A6)*D3 + /(MREQ*/IORQ*/WR*RD*A7*/A6)*OUT3
RD WR MREQ IORQ A15 A7 A6 Acesso seleccionado

0 (1) 1 (0) 0 1 0 X X Memria D0.TRST = MREQ*/IORQ*WR*/RD*A7*A6
D1.TRST = MREQ*/IORQ*WR*/RD*A7*A6 0
- - 1 0 X 0 0 - D2.TRST = MREQ*/IORQ*WR*/RD*A7*A6 1 D
1 0 1 0 X 0 1 Sada analgica D3.TRST = MREQ*/IORQ*WR*/RD*A7*A6
D0 = KEY0
1 0 1 0 X 1 0 Sadas digitais D1 = KEY1
0 1 1 0 X 1 1 Entradas digitais D2 = KEY2
D3 = KEY3



+------------------------------------------------------------------------------+
FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 27 J. M. Martins Ferreira 28
Exemplo de aplicao Gerao do cdigo objecto
O exemplo de aplicao que aqui se ilustra A passagem deste cdigo em assembly pelo
corresponde a uma situao simples que cross-assembler gera o seguinte ficheiro .lst:
gera uma onda em dente de serra 0001 0000
0002 0000 inicio .org 0h
inicio .org 0h ; posiciona o codigo a partir de 0000 0003 0000
0004 0000 saida .equ 40h
saida .equ 40h ; endereco do conversor D/A 0005 0000
0006 0000 3E 00 inicio ld a,$00
inicio ld a,$00 ; comeca com o valor minimo 0007 0002 D3 40 ciclo out (saida),a
ciclo out (saida),a ; escreve no D/A (saida analogica) 0008 0004 3C inc a
inc a ; incrementa o valor para o D/A 0009 0005 C3 02 00 jp ciclo
jp ciclo ; repete o ciclo escreve / incrementa 0010 0008
0011 0008 .end
.end 0012 0008

tasm: Number of errors = 0


FEUP / LEEC MP (2000 / 2001) FEUP / LEEC MP (2000 / 2001)
J. M. Martins Ferreira 29 J. M. Martins Ferreira 30

Execuo do cdigo
A execuo do cdigo objecto gerado
produz a seguinte forma de onda:

FEUP / LEEC MP (2000 / 2001)


J. M. Martins Ferreira 31

Você também pode gostar