Mikroprocesor Z80 (Karczmarczuk J.).pdf

(13516 KB) Pobierz
Spis treści
Przedmowa/7
pierwsza.
Część
1. %'stęp/9
1.1. Przedstawiamy bohatera/9
1.2. Podstawowe cechy użytkowe Z80/10
1.3. Dodatkowe układy rodziny Z80/11
1.4. Reprezentacja liczb w procesorze i podstawowe operacje arytmetyczne
i logiczne/12
Budowa i organizacja wewnętrzna Z80/16
2.1.
2.2.
2.3.
Podstawowe dane techniczne/16
2.4.
Wyprowadzenia zewnętrzne procesora/17
Organizacja wewnętrzna procesora/19
Rejestry/21
3.
3.1.
3.2.
3.3.
Działanie procesora/26
Cykle pracy procesora/26
Wykonanie cyklu M 1/27
Cykl odczytu i zapisu pamięci oraz urządzeń zewnętrznych/29
Cykl przyjęcia przerwania/31
3.4,
3.5.
Żądanie wyłączności dostępu do magistral. Zerowanie procesora/34
Zasady programowania w języku wewnętrznym/36
4.1.
4.2.
4.3.
Tryby adresowania pamięci przez procesor/36
Mnemonika asemblera Z80. Konwencje zapisu argumentów operacji/38
Kody rozkazów i ich struktura/42
5. Lista rozkazów procesora Z80/46
5.1. Podział rozkazów na grupy. Konwencje notacyjne/46
5.2. Grupa rozkazów przesyłania jednego bajtu/48
5.3.
5.4.
5.5.
5.6.
5.7.
5.8.
5.9.
5.10.
5.11.
5.12.
5.13.
Grupa
Grupa
Grupa
Grupa
Grupa
Grupa
Grupa
Grupa
Grupa
Grupa
Grupa
rozkazów przesłan dwubajtowych/53
rozkazów zamiany/56
8-bitowych rozkazów arytmetycznych i logicznych/57
rozkazów przesunięć/64
16-bitowych rozkazów arytmetycznych/68
rozkazów przesyłania i przeszukiwania bloków/71
rozkazów sterujących/74
rozkazów skoków/76
rozkazów wywołań podprogramów i rozkazów powrotu/80
rozkazów adresujących bity/84
rozkazów wejścia i wyjścia/85
Część
druga. Techniki programowania w języku asemblera/89
6.
6.1.
Architektura programów w języku asemblera/89
Od algorytmu do programu/89
Podprogramy i wykorzystanie stosu/91
6.2.
6.3.
6.4.
6.5.
Podprogramy przemieszczalne. Współprogramy/95
Rozgałęzienia i pętle/99
Programy sterowane danymi. Techniki interpretacji i ich wykorzystanie/105
Operacje arytmetyczne i logiczne/108
7.1.
7.2.
Operacje na bitach i ich zastosowanie/108
zewnętrznej na dwójkową i odwrotnie/110
Złożone procedury arytmetyczne/116
Prosta arytmetyka na liczbach całkowitych. Konwersja liczb z postaci
7.3.
8. Struktury danych i ich przetwarzanie/125
8.1. Tablice jednowymiarowe/125
8.2. Tablice wielowymiarowe i struktury listowe/133
Dodatek
Dodatek B.
Dodatek C.1.
Dodatek C.2.
Literatura/171
Skorowidz/172
alfabetycznie/161
według kodów/166
Przedmowa
Książka ta nie jest pierwszą pozycją w naszej literaturze zawierającą informacje
na temat mikroprocesora Z80. Listę rozkazów oraz skrótowy opis innych cech
procesora można znaleźć np. w [7], [9] lub [11], a także w przygotowywanej do
WNT
druku przez
„Przewodnik po technice mikrokomputerowej". Celem autora niniejszej książki
— ze względu na jej monograficzny charakter — był pełny, wyczerpujący opis
możliwości tego procesora z punktu widzenia programisty, a także omówienie
techniki programowania w języku asemblera. Opisano więc dość dokładnie
przebiegi czasowe w procesorze oraz pewne szczegóły dotyczące np. systemu
przerwań, niekiedy pomijane w literaturze. Podano również „nieoficjalne",
niepublikowane przez firmę Zilog rozkazy procesora. Rozkazy te zostały przez
autora przetestowane, jednakże nie może to gwarantować ich skuteczności dla
każdego egzemplarza Z80.
Druga część książki jest podręcznikiem programowania w języku
asemblera Z80. Takiej pozycji dotychczas u nas nie wydano, chociaż praca [7]
zawiera nieco przykładów programów. 0 potrzebie takiej książki świadczy
popularność pozycji [10] i [12] oraz innych książek Rodnaya Zaksa poświę-
conych programowaniu innych mikroprocesorów.
Książka jest przeznaczona dla osób mających już pewne, choćby
niewielkie doświadczenie w programowaniu, niekoniecznie w języku asemblera.
Może służyć zawodowym projektantom oprogramowania, ale także wielu
osobom dysponującym mikrokomputerem opartym na Z80 i chcącym rozsze-
rzyć jego możliwości.
Związek umiejętności programowania ze znaJomością listy rozkazów
jest nieco podobny do relacji między umiejętnością tłumaczenia, czy nawet
mówienia w danym języku, a znajomością słownika. Trzeba trenować, ale
niezłym punktem startowym może być czytanie gotowych rozwiązań. Temu
celowi są poświęcone przykłady. Jest ich sporo, niektóre są dość złożone. Ich
Przedmowa
głównym zadaniem jest możliwie wszechstronna demonstracja sposobów korzy-
stania z różnych rozkazów Z80, trybów adresowania oraz metod organizacji
i optymalizacji programów. Każdemu większemu przykładowi towarzyszą
sugestie dotyczące samodzielnych ćwiczeń.
Bardzo ważnym elementem programowania jest znajomość podsta-
wowych algorytmów numerycznych bądź innych, w oderwaniu od konkretnego
języka programowania, zwłaszcza zaś od języka asemblera, który charakteryzuje
się tym, że idea algorytmu może być kompletnie zakryta szczegółami technicz-
nymi. Chyba nie będzie przesady w stwierdzeniu, że bardziej skomplikowanego
algorytmu praktycznie nie można nauczyć się jedynie na poziomie asemblera.
Tak więc jakość programów pisanych na niskim poziomie, tj. bliskim sprzętowi,
jest też wykładnikiem ogólniejszej wiedzy programisty o danych i algorytmach.
Książki [1] i [6] zawierają wiele interesujących przykładów poświęconych np.
arytmetyce, tak sformułowanych, że przełożenie ich na język asemblera nie
powinno być bardzo trudne. W niniejszej książce niektórym rozwiązaniom na
poziomie asemblera towarzyszą procedury napisane w języku wyższego poziomu
zbliżonym do Pascala. Ich celem jest czytelny i zwarty, ale precyzyjny opis
użytego algorytmu, co powinno ułatwić czytanie procedury w języku asemblera.
Jerzy Karczmarczuk
Kraków, czerwiec 1985
Zgłoś jeśli naruszono regulamin