Opis instrukcji mikroprocesora Z80


Instrukcje arytmetyczne i logiczne

Tablica 10 wymienia wszystkie 8-bitowe operacje arytmetyczne, które mogą być wykonywane za pomocą akumulatora. Również zawarto tam instrukcje zwiększania (INC) i zmniejszania (DEC). We wszystkich tych instrukcjach, z wyjątkiem INC i DEC, określona operacja 8-bitowa jest wykonywana pomiędzy danymi w akumulatorze a danymi źródłowymi. Wynik operacji trafia do akumulatora, z wyjątkiem porównań (CP), które nie zmieniają jego zawartości. Wszystkie te operacje zmieniają stan znaczników zgodnie ze swoim wynikiem. Instrukcje INC oraz DEC określają rejestr lub komórkę pamięci zarówno jako źródło jak i miejsce docelowe wyniku. Gdy argument źródłowy jest adresowany przy użyciu rejestrów indeksowych, przesunięcie musi być umieszczone za kodem operacji. Przy adresowaniu natychmiastowym argument występuje bezpośrednio za instrukcją. Na przykład instrukcja AND 07H ma postać:

 

Adres A E6 }- kod operacyjny
A + 1 07 }- argument

 

Założywszy, iż akumulator zawierał wcześniej wartość F3H, wynik 03H trafia do akumulatora:

 

            Akumulator przed operacją: 11110011 = F3H
  Argument: 00000111 = 07H
  Wynik do akumulatora: 00000011 = 03H

 

Instrukcja ADD wykonuje dwójkowe dodawanie pomiędzy danymi źródłowymi a danymi w akumulatorze. Instrukcja SUB wykonuje dwójkowe odejmowanie. Jeśli zostanie użyte dodawanie z przeniesieniem ADC lub odejmowanie z przeniesieniem SBC, to również zostanie odpowiednio dodany lub odjęty znacznik przeniesienia. Znaczniki oraz instrukcja korekty dziesiętnej DAA w Z80 pozwalają wykonywać operacje arytmetyczne dla:

Pozostałymi instrukcjami w tej grupie są logiczne AND (koniunkcja), OR (alternatywa), XOR (różnica symetryczna) oraz porównania CP.

 

Tablica 10. Grupa 8-bitowych operacji arytmetycznych i logicznych

  Źródło
  Adresowanie rejestrowe Rejestrowe
pośrednie
Indeksowane Natychm.
  A B C D E H L (HL) (IX+d) (IY+d) n
Dodawanie
ADD
87 80 81 82 83 84 85 86 DD
86
d
FD
86
d
C6
n
Dodawanie
z przeniesieniem
ADC
8F 88 89 8A 8B 8C 8D 8E DD
8E
d
FD
8E
d
CE
n
Odejmowanie
SUB
97 90 91 92 93 94 95 96 DD
96
d
FD
96
d
D6
n
Odejmowanie
z przeniesieniem
SBC
9F 98 99 9A 9B 9C 9D 9E DD
9E
d
FD
9E
d
DE
n
Koniunkcja
AND
A7 A0 A1 A2 A3 A4 A5 A6 DD
A6
d
FD
A6
d
E6
n
Suma symetryczna
XOR
AF A8 A9 AA AB AC AD AE DD
AE
d
FD
AE
d
EE
n
Alternatywa
OR
B7 B0 B1 B2 B3 B4 B5 B6 DD
B6
d
FD
B6
d
F6
n
Porównanie
CP
BF B8 B9 BA BB BC BD BE DD
BE
d
FD
BE
d
FE
n
Zwiększanie o 1
INC
3C 04 0C 14 1C 24 2C 34 DD
34
d
FD
34
d
 
Zmniejszanie o 1
DEC
3D 05 0D 15 1D 25 2D 35 DD
35
d
FD
35
d
 

 

Pięć arytmetycznych instrukcji ogólnego przeznaczenia operuje na akumulatorze lub znaczniku przeniesienia. Zostały one wymienione w tablicy 11. Instrukcja korekty dziesiętnej umożliwia poprawianie wyniku dodawania lub odejmowania dla liczb BCD, dzięki czemu ich arytmetyka jest bardzo prosta. Dla tych operacji wykorzystywany jest znacznik N. Znacznik ten zostaje ustawiony, jeśli ostatnią operacją arytmetyczną było odejmowanie. Instrukcja zmiany znaku NEG tworzy liczbę przeciwną w kodzie U2 do zawartości akumulatora. Na koniec zwróć uwagę, iż w zbiorze instrukcji mikroprocesora Z80 brak instrukcji zerowania przeniesienia. Operację tą można z łatwością uzyskać za pomocą innych instrukcji, takich jak AND akumulatora z samym sobą.

 

Tablica 11. Grupa operacji ogólnego przeznaczenia na rejestrach AF

Poprawka dziesiętna akumulatora
DAA
27
Negacja akumulatora
CPL
2F
Zmiana znaku akumulatora
NEG
ED
44
Negacja znacznika przeniesienia
CCF
3F
Ustawienie znacznika przeniesienia
SCF
37

 

Tablica 12 wymienia wszystkie 16-bitowe operacje arytmetyczne pomiędzy rejestrami 16-bitowymi. Jest pięć grup instrukcji, łącznie z dodawaniem i odejmowaniem z przeniesieniem. ADC i SBC zmieniają wszystkie znaczniki. Te dwie grupy ułatwiają obliczanie na adresach oraz inne 16-bitowe operacje arytmetyczne.

 

Tablica 12. Grupa arytmetyki 16-bitowej

    Źródło
Przeznaczenie BC DE HL SP IX IY
Dodawanie
ADD
HL 09 19 29 39    
IX DD
09
DD
19
  DD
39
DD
29
 
IY FD
09
FD
19
  FD
39
  FD
29
Dodawanie z przeniesieniem
i ustawianiem znaczników
ADC
HL ED
4A
ED
5A
ED
6A
ED
7A
   
Odejmowanie z przeniesieniem
i ustawianiem znaczników
SBC
HL ED
42
ED
52
ED
62
ED
72
   
Zwiększanie o 1
INC
03 13 23 33 DD
23
FD
23
Zmniejszenie
DEC
DB 1B 2B 3B DD
2B
FD
2B

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.