180 likes | 367 Views
Mikroprocesor Z80. przykładowy 8-bitowy mikroprocesor uniwersalny CISC. Z80 1/16. Geneza. Z80 1977, 2,5MHz. Z8 1978. Z8000 1979.
E N D
Mikroprocesor Z80 przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Z80 1/16 Geneza Z801977, 2,5MHz Z81978 Z80001979
Z80 -cechy 2/16 • Cechy użytkowe (zalety w porównaniu z 8080) : • 8-bitowa magistrala danych; • 16-bitowa magistrala adresów; • 8-bitowa ALU; • bogata gama rozkazów: • przesyłania bajtów i słów 2-bajtowych • przesyłania i przeszukiwania bloków informacji • operacje arytmetyczno-logiczne na bajtach i słowach 2-bajtowych(rozszerzony zestawoperacji i argumentów) • operacje bitowe (BIT, SET, RES) • 16-bitowe skoki i wywołania procedur, bezwarunkowe i warunkowe • skoki relatywne (1B w U2) • operacje we/wy proste • operacje we/wy z wyliczaną adresacją portów i blokowe • rozkazy sterujące
Z80 - cechy 3/16 • 5 trybów adresowania argumentów (w tym tryb dwuskładnikowy); • 2 wejścia przerwań zewnętrznych: maskowalne /INT i niemaskowalne /NMI; • 3 tryby obsługi przerwań, w tym tryb wektorowy; • możliwość programowego przełączania między trybami obsługi przerwań; • 6+6rejestrów roboczych 8-bitowych, ogólnego przeznaczenia, które można łączyć 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 odświeżania pamięci dynamicznych; • rejestry odświeżania R i wektora przerwań I; • jednofazowy sygnał taktujący 2,5MHz (Z80A - 4MHz, Z80B - 6MHz, Z80H - 8MHz, itd.); • zasilanie tylko 5V; • sygnały zewnętrzne zgodne ze standardem TTL; • niepotrzebne specjalne układy taktowania i sterownika magistrali.
Z80 - opis wyprowadzeń 5/16 • D0-D7 - we/wy, 3-stanowe, 8-bitowa magistrala danych;A0-A15 - wy, 3-stanowe, 16-bitowa magistrala adresów;/M1 - wy, sygnalizuje specjalne cykle maszynowe;/MREQ - wy, 3-stanowe, sygnalizuje dostęp do pamięci;/IORQ - wy, 3-stanowe, sygnalizuje dostęp do we/wy;/RD,/WR - wy, 3-stanowe, stroby odczytu i zapisu; • /RFSH - wy, sygnalizuje adres odświeżania DRAM; • /WAIT - we, sygnalizowania P brak gotowości układów pamięci lub portów do przesyłania informacji; • /NMI - we, wejście przerwania niemaskowalnego; • /INT - we, wejście przerwania maskowalnego; • /BUSREQ - we, wejście sygnału od DMA; • /BUSACK - wy, potwierdzenie zwolnienia magistrali • /HALT - wy, sygnalizuje wykonywanie rozkazu HALT • /RESET - we, wejście sygnału zerowania P; • CLK - we, sygnał taktujący pracę P; • 5V,GND - linie zasilające
Z80 - cykl pracy 6/16 pobieranie kodu rozkazu zakończenie rozkazu RR:=M(PC) PC:=PC+1 praca DR wykonanie rozkazu cały kod rozkazu ? N N BUSRQ=0? T BRFF:=1 tryb DMA BUSACK:=0 N BUSRQ=1? T BUSACK:=1 BRFF:=0
Z80 - cykl pracy 7/16 pobieranierozkazu T koniec rozkazu ? N pobranie argumentu wykonanie rozkazu zapamiętanie wyniku zdekodowanierozkazu N koniec cyklu masz.? T N koniec rozkazu ? T T N NMI=0? IFF2:=IFF1 IFF1:=0 PCstos PC:=66h NMIFF:=0 NMIFF:=1 T N NMIFF=1? INT=0? N T N tryb DMA BUSACK:=0 IFF1=1? IFF1:=0 PCstos PC:=adres proc.obs. przerwania INTFF:=0 T INTFF:=1 T INTFF=1? N BUSRQ=1? N T BUSACK:=1 BRFF:=0 T BUSRQ=0? N
Z80 - cykle maszynowe 10/16
Z80 - cykle maszynowe 11/16
Z80 - tryby adresowania 12/16
Z80 - tryby adresowania 13/16
Z80 - tryby adresowania 14/16
Z80 - stos 15/16 • Cechy: • stos programowy typu LIFO; • dowolna alokacja w przestrzeni adresowej 64kB PAO (musi być w RAM); • dowolny rozmiar (wielkość) - ilość informacji na stosie jest ograniczona tylko wielkością dostępnego RAM; • jednostką operacji na stosie jest słowo dwubajtowe (starszy bajt jest umieszczony w komórce RAM o wyższym adresie, a młodszy - w komórce o niższym adresie); • przy zapisie stos „narasta” w kierunku malejących adresów; • 16-bitowy SP wskazuje zawsze na ostatnio zapisany bajt na stosie; • dostęp do stosu realizowany jest: • - automatycznie przy wejściu w wywoływaną procedurę lub procedurę obsługi przerwania; • - programowo, rozkazami PUSH, POP, EX (SP).
PAO B: C: SP: 1111h: 1110h: 110Fh: 13h 24h 03h 1111h XX XX H: L: XX XX XX Z80 - stos, reset procesora 16/16 Ilustracja działania stosu: zapis na stos:PUSH BC 1110h 110Fh 1110h 1111h 13h odczyt ze stosu:POP HL 24h 13h 24h • Reset Z80 • Wywoływany jest przez niski sygnał na wejściu /RESET trwający przez minimum 3 okresy przebiegu taktującego CLK. Reset powoduje: • ustawienie linii zewnętrznych w stan wysokiej impedancji lub wysoki; • PC:=0; • SP:=0; • zablokowanie przerwań maskowalnych INT; • ustawienie podstawowego trybu obsługi przerwań maskowalnych.