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 |
©2024 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 Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 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.