Title: Mikroprocesor Z80
1Mikroprocesor Z80
- przykladowy 8-bitowy mikroprocesor uniwersalny
CISC
2Z80
1/16
Geneza
Z801977, 2,5MHz
Z81978
Z80001979
3Z80 -cechy
2/16
- Cechy uzytkowe (zalety w porównaniu z 8080)
- 8-bitowa magistrala danych
- 16-bitowa magistrala adresów
- 8-bitowa ALU
- bogata gama rozkazów
- przesylania bajtów i slów 2-bajtowych
- przesylania i przeszukiwania bloków informacji
- operacje arytmetyczno-logiczne na bajtach i
slowach 2-bajtowych (rozszerzony zestaw
operacji i argumentów) - operacje bitowe (BIT, SET, RES)
- 16-bitowe skoki i wywolania procedur,
bezwarunkowe i warunkowe - skoki relatywne (1B w U2)
- operacje we/wy proste
- operacje we/wy z wyliczana adresacja portów i
blokowe - rozkazy sterujace
4Z80 - cechy
3/16
- 5 trybów adresowania argumentów (w tym tryb
dwuskladnikowy) - 2 wejscia przerwan zewnetrznych maskowalne
/INT i niemaskowalne /NMI - 3 tryby obslugi przerwan, w tym tryb wektorowy
- mozliwosc programowego przelaczania miedzy
trybami obslugi przerwan - 66 rejestrów roboczych 8-bitowych, ogólnego
przeznaczenia, które mozna laczyc w pary,
podzielonych na 2 alternatywne zestawy - 2 16-bitowe rejestry indeksowe
- 16-bitowe PC i SP
- zdwojone akumulator A i rejestr flag F
- wbudowany mechanizm odswiezania pamieci
dynamicznych - rejestry odswiezania R i wektora przerwan I
- jednofazowy sygnal taktujacy 2,5MHz (Z80A -
4MHz, Z80B - 6MHz, Z80H - 8MHz, itd.) - zasilanie tylko 5V
- sygnaly zewnetrzne zgodne ze standardem TTL
- niepotrzebne specjalne uklady taktowania i
sterownika magistrali.
5Z80 - struktura wewnetrzna
4/16
6Z80 - opis wyprowadzen
5/16
D0-D7 - we/wy, 3-stanowe, 8-bitowa magistrala
danychA0-A15 - wy, 3-stanowe, 16-bitowa
magistrala adresów/M1 - wy, sygnalizuje
specjalne cykle maszynowe/MREQ - wy, 3-stanowe,
sygnalizuje dostep do pamieci/IORQ - wy,
3-stanowe, sygnalizuje dostep do we/wy/RD,/WR -
wy, 3-stanowe, stroby odczytu i zapisu /RFSH -
wy, sygnalizuje adres odswiezania DRAM /WAIT -
we, sygnalizowania ?P brak gotowosci ukladów
pamieci lub portów do przesylania
informacji /NMI - we, wejscie przerwania
niemaskowalnego /INT - we, wejscie przerwania
maskowalnego /BUSREQ - we, wejscie sygnalu od
DMA /BUSACK - wy, potwierdzenie zwolnienia
magistrali /HALT - wy, sygnalizuje wykonywanie
rozkazu HALT /RESET - we, wejscie sygnalu
zerowania ?P CLK - we, sygnal taktujacy prace
?P 5V,GND - linie zasilajace
7Z80 - cykl pracy
6/16
pobieranie kodu rozkazu
zakonczenie rozkazu
RRM(PC) PCPC1 praca DR
wykonanie rozkazu
caly kod rozkazu ?
N
N
BUSRQ0?
T
BRFF1 tryb DMA BUSACK0
N
BUSRQ1?
T
BUSACK1 BRFF0
8Z80 - cykl pracy
7/16
pobieranierozkazu
T
koniec rozkazu ?
N
wykonanie rozkazu
pobranie argumentu
zapamietanie wyniku
zdekodowanierozkazu
N
koniec cyklu masz.?
T
N
koniec rozkazu ?
T
N
T
NMI0?
IFF2IFF1 IFF10 PC?stos PC66h NMIFF0
NMIFF1
T
N
NMIFF1?
INT0?
N
T
N
tryb DMA BUSACK0
IFF11?
IFF10 PC?stos PCadres proc.obs. przerwania
INTFF0
T
INTFF1
T
INTFF1?
N
BUSRQ1?
N
T
BUSACK1 BRFF0
T
BUSRQ0?
N
9Z80 - cykle maszynowe
8/16
10Z80 - cykle maszynowe
9/16
11Z80 - cykle maszynowe
10/16
12Z80 - cykle maszynowe
11/16
13Z80 - tryby adresowania
12/16
14Z80 - tryby adresowania
13/16
15Z80 - tryby adresowania
14/16
16Z80 - stos
15/16
- Cechy
- stos programowy typu LIFO
- dowolna alokacja w przestrzeni adresowej 64kB
PAO (musi byc w RAM) - dowolny rozmiar (wielkosc) - ilosc informacji na
stosie jest ograniczona tylko wielkoscia
dostepnego RAM - jednostka operacji na stosie jest slowo
dwubajtowe (starszy bajt jest umieszczony w
komórce RAM o wyzszym adresie, a mlodszy - w
komórce o nizszym adresie) - przy zapisie stos narasta w kierunku
malejacych adresów - 16-bitowy SP wskazuje zawsze na ostatnio
zapisany bajt na stosie - dostep do stosu realizowany jest
- - automatycznie przy wejsciu w wywolywana
procedure lub procedure obslugi
przerwania - - programowo, rozkazami PUSH, POP, EX (SP).
17Z80 - stos, reset procesora
16/16
Ilustracja dzialania stosu
zapis na stosPUSH BC
1110h
110Fh
1110h
1111h
13h
odczyt ze stosuPOP HL
24h
24h
13h
- Reset Z80
- Wywolywany jest przez niski sygnal na wejsciu
/RESET trwajacy przez minimum 3 okresy przebiegu
taktujacego CLK. Reset powoduje - ustawienie linii zewnetrznych w stan wysokiej
impedancji lub wysoki - PC0
- SP0
- zablokowanie przerwan maskowalnych INT
- ustawienie podstawowego trybu obslugi przerwan
maskowalnych.