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 |
Mikroprocesor Z80 potrafi wykonać 158 różnych typów instrukcji, łącznie z 78 instrukcjami starszego modelu 8080A. Instrukcje te dzielą się na następujące grupy główne:
Instrukcje ładowania przemieszczają dane wewnętrznie pomiędzy
rejestrami mikroprocesora lub pomiędzy jego rejestrami a zewnętrzną pamięcią.
Wszystkie instrukcje tego typu określają miejsce źródłowe, z którego mają zostać
pobrane dane, oraz miejsce docelowe. Miejsce źródłowe nie jest zmieniane przez
instrukcję ładowania. Przykładami grup instrukcji ładowania mogą być
przesyły danych pomiędzy dowolnymi rejestrami ogólnego przeznaczenia, np.
przeniesienie danych do rejestru B
z rejestru C
. Ta grupa zawiera również
ładowanie danej natychmiastowej do dowolnego rejestru mikroprocesora lub do
dowolnej komórki pamięci zewnętrznej. Inne typy instrukcji ładowania pozwalają
przenosić dane pomiędzy rejestrami a komórkami pamięci. Instrukcje wymiany mogą
zamienić ze sobą zawartość dwóch rejestrów.
Z80 został wyposażony w unikalny zestaw instrukcji przesyłu blokowego. Za pomocą pojedynczej instrukcji można przesunąć obszar pamięci o dowolnym rozmiarze w dowolne inne miejsce w pamięci. Ten zestaw przesyłów blokowych staje się niezmiernie cenny w czasie pracy z dużymi ciągami danych. Za pomocą pojedynczej instrukcji można wyszukać 8 bitowy znak w bloku zewnętrznej pamięci o dowolnej, pożądanej wielkości. Gdy zostanie znaleziony poszukiwany znak lub osiągnięty koniec bloku, instrukcja automatycznie kończy swoje działanie. Zarówno instrukcje przesyłów blokowych jak i blokowego przeszukiwania mogą być przerywane podczas swojej pracy, zatem nie zajmują one mikroprocesora na długie okresy czasu.
Instrukcje arytmetyczne i logiczne działają na danych zapisanych w akumulatorze i innych rejestrach ogólnego przeznaczenia lub w komórkach pamięci zewnętrznej. Wyniki operacji są umieszczane w akumulatorze z ustawieniem odpowiednich znaczników zgodnie z otrzymanym wynikiem.
Przykładem operacji arytmetycznej jest dodawanie akumulatora do zawartości komórki pamięci zewnętrznej. Wyniki dodawania są umieszczane w akumulatorze. Ta grupa zawiera również 16 bitowe dodawanie i odejmowanie pomiędzy parami rejestrów mikroprocesora.
Grupa obrotów i przesuwów pozwala przemieszczać arytmetycznie lub logicznie bity dowolnego rejestru lub komórki pamięci w prawo lub w lewo, z lub bez znacznika przeniesienia. Również cyfra 4 bitowa BCD może być przesuwana w prawo lub w lewo z dowolną komórką w pamięci.
Instrukcje operujące na poszczególnych bitach pozwalają za pomocą
pojedynczej instrukcji ustawiać, zerować lub testować dowolny bit akumulatora i
rejestru ogólnego przeznaczenia oraz dowolnej komórki pamięci zewnętrznej. Na
przykład można wyzerować najbardziej znaczący bit rejestru H
. Ta grupa jest
szczególnie użyteczna w aplikacjach sterujących oraz w programowym sprawdzaniu
różnych znaczników w programach ogólnego przeznaczenia.
Instrukcje skoków, wywołań procedur i powrotów pozwalają
mikroprocesorowi wykonywać kod z różnych miejsc w programie użytkownika. Grupa
ta wykorzystuje kilka różnych sposobów otrzymywania nowego adresu dla licznika
programu ze określonych komórek pamięci. Unikalnym typem wywołania jest
instrukcja restartu. Zawiera ona adres wywołania w swoim ośmiobitowym kodzie.
Jest to możliwe, ponieważ dozwolone jest tylko osiem oddzielnych adresów
umieszczonych na stronie zerowej pamięci zewnętrznej. Skoki programowalne można
osiągnąć ładując zawartość rejestrów HL
, IX
lub IY
bezpośrednio do
PC
, co
pozwala wcześniej wyliczyć adres skoku.
Grupa instrukcji wejścia / wyjścia w mikroprocesorze Z80 pozwala
na szeroki zakres przesyłów pomiędzy pamięcią zewnętrzną lub rejestrami ogólnego
przeznaczenia a urządzeniami zewnętrznymi. W każdym przypadku jest przy dowolnej
transakcji wejścia / wyjścia numer portu I/O pojawia się na młodszych ośmiu
bitach magistrali adresowej. Jedna instrukcja pozwala podawać ten numer jako
drugi bajt kodu instrukcji, natomiast inne instrukcje mikroprocesora Z80
pozwalają go określić jako zawartość rejestru C
. Jedną z głównych zalet
stosowania rejestru C
jako wskaźnika urządzenia wejścia/ wyjścia jest możliwość
obsługi wielu portów I/O przez procedury wspólnego sterownika programowego.
Zaleta ta nie jest dostępna przy stosowaniu numeru urządzenia wejścia / wyjścia
jako kodu instrukcji, jeśli program jest umieszczony w pamięci ROM. Inną cechą
tych instrukcji wejścia/ wyjścia jest automatyczne ustawianie rejestru
znaczników, co czyni zbędnymi inne operacje określające stan danych wejściowych.
Jednym z przykładów jest stan parzystości.
Mikroprocesor Z80 posiada pojedyncze instrukcje, które potrafią automatycznie przesyłać bloki danych (do 256 bajtów) do lub z dowolnego portu I/O bezpośrednio do dowolnego miejsca w pamięci. W połączeniu z podwójnym zbiorem rejestrów ogólnego przeznaczenia te instrukcje udostępniają szybkie transmisje I/O bloków danych. Potęga tych instrukcji wejścia / wyjścia jest demonstrowana przez mikroprocesor Z80 przy formatowaniu dysków elastycznych na stacjach o podwójnej gęstości zapisu za pomocą procedur sterowanych przerwaniami. Przykładowo, mikroprocesor zapewnia nagłówek, adres, dane i wprowadza kody CRC.
Na koniec, podstawowe instrukcje sterujące mikroprocesorem pozwalają na stosowanie różnych opcji i trybów. Ta grupa instrukcji obejmuje ustawianie i zerowanie przerzutnika przerwań lub ustawianie trybu odpowiedzi na przerwanie.
![]() |
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.