|
Serwis Edukacyjny nauczycieli w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Tłumaczenie: mgr Jerzy Wałaszek |
©2026 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.
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
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 Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.