Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Tłumaczenie: mgr Jerzy Wałaszek |
©2021 mgr Jerzy Wałaszek |
Rodzina komponentów ZiLOG Z80 należy do czwartej generacji układów mikroprocesorowych posiadających wyjątkową moc obliczeniową (w latach 80-tych). Oferują one większą przepustowość systemu oraz bardziej efektywne wykorzystywanie pamięci niż porównywalne mikroprocesory drugiej czy trzeciej generacji. Oferowana szybkość pracy od 6 do 20MHz jest zupełnie wystarczająca w szerokim zakresie zastosowań. Wewnętrzne rejestry zawierają 208 bitów bardzo szybkiej pamięci do zapisu i odczytu , która jest dostępna dla programisty. Rejestry te zawierają dwa zestawy po sześć rejestrów ogólnego przeznaczenia, które można używać indywidualnie jako albo rejestry 8-mio bitowe, albo pary rejestrów 16-to bitowych. Dodatkowo istnieją dwa zestawy rejestrów akumulatora oraz znaczników.
Mikroprocesor Z80 zawiera również Wskaźnik Stosu, Licznik Programu, dwa rejestry indeksowe, rejestr odświeżania oraz rejestr przerwań. Układ Z80 łatwo adaptuje się w różnych urządzeniach, ponieważ wymaga on pojedynczego zasilania +5V. Wszystkie sygnały wyjściowe są w pełni dekodowane i przystosowane czasowo do sterowania standardowymi układami pamięci i wejścia/wyjścia; mikroprocesor Z80 jest wspierany przez olbrzymią rodzinę układów we/wy firmy ZiLOG oraz trzeciorzędnych producentów.
Na rys.1 przedstawiona jest wewnętrzna architektura oraz główne elementy składowe mikroprocesora Z80.
Rys.1 Schemat blokowy mikroprocesora Z80
Mikroprocesor Z80 zawiera 208 bitów pamięci R/W, które są
dostępne dla programisty. Rys.2 ilustruje sposób podziału tej pamięci na
osiemnaście rejestrów 8-bitowych oraz cztery rejestry 16-bitowe. Wszystkie
rejestry Z80 zbudowane są ze statycznej pamięci RAM. Rejestry zawierają dwa
zestawy po sześć rejestrów ogólnego przeznaczenia, które można indywidualnie
używać jako rejestry
Rys.2 Konfiguracja rejestrów mikroprocesora Z80
Licznik Rozkazów PC
(ang. Program Counter) przechowuje 16-bitowy adres bieżąco pobieranej z
pamięci instrukcji. PC jest automatycznie zwiększany po przesłaniu swojej
zawartości na linie adresowe. Gdy zdarza się skok w programie, nowa wartość jest
automatycznie umieszczana w PC, zastępując wartość poprzednio zwiększoną.
Wskaźnik Stosu SP
(ang.
Stack Pointer) przechowuje 16-bitowy adres bieżącego wierzchołka stosu,
który może znajdować się w dowolnym miejscu zewnętrznej pamięci RAM. Pamięć
zewnętrznego stosu ma strukturę typu LIFO
(ang. Last In First Out - ostatni wszedł a pierwszy wyszedł).
Dane mogą być umieszczane na stosie z określonych rejestrów mikroprocesora oraz
pobierane ze stosu do tychże rejestrów przez wykonanie instrukcji PUSH lub POP.
Dane pobierane ze stosu są zawsze danymi ostatnio na nim umieszczonymi. Stos
umożliwia prostą implementację wielopoziomowych przerwań, nieograniczonego
zagnieżdżania podprogramów oraz upraszcza wiele rodzajów przetwarzania danych.
Dwa niezależne rejestry indeksowe przechowują 16-bitowy adres bazowy, który używany jest w indeksowanych trybach adresowania. W takim trybie rejestr indeksowy stosuje się jako bazę wskazującą obszar pamięci, z którego będą dane pobierane lub do którego dane będą zapisywane. W instrukcjach z indeksowaniem występuje dodatkowy bajt określający przemieszczenie w stosunku do adresu bazowego. Przemieszczenie jest liczbą całkowitą ze znakiem zapisana w kodzie uzupełnienia do 2 - U2. Taki tryb adresowania znacząco upraszcza wiele programów, szczególnie tych używających tablic danych.
Mikroprocesor Z80 może pracować w trybie, gdzie w odpowiedzi na
przerwanie następuje wywołanie procedury obsługującej je umieszczonej w dowolnym
obszarze pamięci. Do tego celu wykorzystywany jest rejestr I
, w
którym przechowywane jest 8 najstarszych bitów adresu procedury obsługi
przerwania (tzw. adres strony), a młodsze 8 bitów
podaje urządzenie zgłaszające przerwanie. Właściwość ta pozwala dynamicznie
rozmieszczać procedury obsługi przerwań w dowolnym miejscu pamięci z minimalnym
czasem dostępu do takiej procedury.
Mikroprocesor Z80 zawiera licznik odświeżania pamięci,
umożliwiający wykorzystanie pamięci dynamicznych z taką samą łatwością jak
pamięci statycznych. Po pobraniu każdej instrukcji siedem bitów tego 8-bitowego
rejestru licznika jest automatycznie zwiększane. Ósmy bit pozostaje tak, jak
został zaprogramowany przy pomocy instrukcji I
jest umieszczana w górnej połówce magistrali
adresowej.
Mikroprocesor zawiera dwa niezależne, 8-bitowe akumulatory oraz
związane z nimi 8-bitowe rejestry znaczników. Akumulator A
przechowuje wynik 8-bitowych operacji arytmetycznych lub logicznych, natomiast
rejestr znaczników F - FLAG
informuje o specyficznych warunkach dla
operacji 8- i 16-bitowych, np. zawiera informację, czy wynikiem danej operacji
jest zero lub wartość różna od zera. Programista wybiera akumulator i
rejestr znaczników przy pomocy pojedynczej instrukcji wymiany EX AF,AF'
,
W dwóch dobranych zestawach rejestrów ogólnego przeznaczenia
znajduje się po sześć rejestrów 8-bitowych, które można używać indywidualnie
jako rejestry 8-bitowe lub w parach jako rejestry 16-bitowe. Jeden zestaw jest
zwany BC
, DE
i HL
, a drugi BC'
,
DE'
i HL'
. W każdej chwili programista może
instrukcją EXX
przełączyć się z jednego zestawu na drugi. W systemach
wymagających szybkiej odpowiedzi na przerwania jeden zestaw rejestrów ogólnego
przeznaczenia oraz akumulator i rejestr znaczników może być zarezerwowany dla
takiej szybkiej procedury. Powoduje to znaczne skrócenie czasu obsługi
przerwania, ponieważ odpada potrzeba zapamiętywania stanu używanych rejestrów na
stosie przy wejściu do procedury przerwania oraz odtwarzania stanu tych
rejestrów przy wyjściu z procedury. Rejestry ogólnego przeznaczenia stosowane są
praktycznie we wszystkich aplikacjach. Ułatwiają również programowanie,
szczególnie w systemach opartych na pamięci ROM, gdzie jest dostępne mało
zewnętrznej pamięci R/W.
8-bitowe instrukcje arytmetyczne i logiczne mikroprocesora wykonywane są w JAL. Wewnętrznie JAL komunikuje się z rejestrami i zewnętrzną magistralą danych przy pomocy wewnętrznej magistrali danych. Funkcje wykonywane przez JAL to:
Po pobraniu każdej instrukcji z pamięci zostaje ona umieszczona w
rejestrze INSTRUKCJI
i zdekodowana. Funkcje tę wykonuje sekcja
sterująca mikroprocesora, która następnie dostarcza odpowiednich sygnałów
sterujących, niezbędnych do odczytu/zapisu danych do rejestrów, sterowania
Jednostką Arytmetyczno-Logiczną oraz wygenerowania pożądanych zewnętrznych
sygnałów sterujących.
![]() |
Zespół Przedmiotowy |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.