Serwis Edukacyjny
nauczycieli

w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Tłumaczenie: mgr Jerzy Wałaszek

©2026 mgr Jerzy Wałaszek

Opis instrukcji mikroprocesora Z80 – 8

SPIS TREŚCI

Opis instrukcji mikroprocesora Z80 – 8

Grupa instrukcji ogólnych arytmetycznych oraz sterujących mikroprocesorem

DAA

DECIMAL ADJUST ACCUMULATOR = Popraw dziesiętnie akumulator

Mnemonik: DAA
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 0 0 1 1 1 27
Opis: Instrukcja ta warunkowo poprawia zawartość Akumulatora po operacjach
dodawania i odejmowania liczb w kodzie BCD (Binary Coded Decimal).
Dla dodawania (ADD, ADC, INC) lub odejmowania (SUB, SBC, DEC, NEG)
poniższa tabela wskazuje wykonywaną operację:
Operacja C przed
DAA
Górna cyfra
(bity 7-4)
H przed
DAA
Dolna cyfra
(bity 3-0)
Liczba
dodawana do A
C po
DAA
ADD
ADC
INC
0
0
0
0
0
0
1
1
1
0-9
0-8
0-9
A-F
9-F
A-F
0-2
0-2
0-3
0
0
1
0
0
1
0
0
1
0-9
A-F
0-3
0-9
A-F
0-3
0-9
A-F
0-3
00H
06H
06H
60H
66H
66H
60H
66H
66H
0
0
0
1
1
1
1
1
1
SUB
SBC
DEC
NEG
0
0
1
1
0-9
0-8
7-F
6-7
0
1
0
1
0-9
6-F
0-9
6-F
00H
FAH
A0H
9AH
0
0
1
1
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: S ustawiany na 1, jeśli po operacji najbardziej znaczący bit Akumulatora
jest ustawiony na 1; inaczej zerowany
Z ustawiany na 1, jeśli po operacji Akumulator zawiera zero; inaczej
zerowany
H - zobacz do tabeli
P/V ustawiany na 1, jeśli po operacji Akumulator zawiera parzystą liczbę
bitów o stanie 1; inaczej zerowany
N nie jest zmieniany
C - zobacz do tabeli
Przykład: Jeśli jest wykonywane dodawanie liczb 15 (BCD) i 27 (BCD), to prosta
arytmetyka daje wynik:
15
+27
42
Lecz binarne postacie tych liczb są dodawane w akumulatorze wg
standardowych zasad dodawania dwójkowego:
0001
+0010
       0101
0111
        
0011   1100   = 3C

Otrzymana suma jest nieprawidłowa w notacji BCD. Instrukcja DAA
poprawia ten wynik, tak aby otrzymać poprawne przedstawienie
obliczonej sumy w BCD:

0011
+0000
       1101
0110
        
0100   0010   = 42

CPL

COMPLEMENT ACCUMULATOR = Zaneguj bity akumulatora

Operacja: AA
Mnemonik: CPL
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 0 1 1 1 1 2F
Opis: Zawartość akumulatora zostaje zanegowana - każdy bit przyjmuje
po operacji stan przeciwny.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: S nie jest zmieniany
Z nie jest zmieniany
H jest ustawiany na 1
P/V nie jest zmieniany
N jest ustawiany na 1
C nie jest zmieniany
Przykład: Jeśli Akumulator zawiera:
1 0 1 1 0 1 0 0
to po wykonaniu instrukcji CPL w Akumulatorze znajdzie się
następująca zawartość:
0 1 0 0 1 0 1 1

NEG

NEGATE ACCUMULATOR WITH 2'S COMPLEMENT = Utwórz w akumulatorze wartość przeciwną

Operacja: A ← 0-A
Mnemonik: NEG
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 0 0 1 0 0 44
Opis: Zawartość Akumulatora zostaje zamieniona na przeciwną w kodzie U2. Jest to równoważne odjęciu
zawartości Akumulatora od zera. Zauważ, że wartość 80H nie ulega zmianie.
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki: S ustawiany na 1, jeśli wynik jest ujemny; inaczej zerowany
Z ustawiany na 1, jeśli wynik zero; inaczej zerowany
H ustawiany na 1, jeśli występuje pożyczka z bitu 4; inaczej zerowany
P/V ustawiany na 1,  jeśli przed operacją Akumulator zawierał 80H; inaczej zerowany
N jest ustawiany na 1
C jest ustawiany na 1, jeśli przed operacją Akumulator zawierał wartość różną od zera; inaczej
zerowany
Przykład: Jeśli Akumulator zawiera:
1 0 0 1 1 0 0 0

to po wykonaniu instrukcji NEG w Akumulatorze znajdzie się następująca zawartość:

0 1 1 0 1 0 0 0

CCF

COMPLEMENT CARRY FLAG = Zmień stan znacznika przeniesienia na przeciwny

Operacja: C ← C
Mnemonik: CCF
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 1 1 1 1 1 3F
Opis: Znacznik przeniesienia C w rejestrze F otrzymuje stan przeciwny.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: S nie zmieniany
Z nie zmieniany
H kopiowane poprzednie przeniesienie
P/V nie zmieniany
N zerowany
C jest ustawiany na 1, jeśli przed operacją był równy zero, inaczej jest ustawiany na zero

SCF

SET CARRY FLAG = Ustaw znacznik przeniesienia na 1

Operacja: C ← 1
Mnemonik: SCF
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 1 0 1 1 1 37
Opis: Znacznik przeniesienia C w rejestrze F jest ustawiany na 1.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: S nie zmieniany
Z nie zmieniany
H zerowany
P/V nie zmieniany
N zerowany
C ustawiany na 1

NOP

NO OPERATION = Nic nie rób

Operacja: -
Mnemonik: NOP
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 0 0 0 0 0 00
Opis: W trakcie tego cyklu maszynowego
mikroprocesor nie wykonuje żadnej
operacji
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden

HALT

HALT = Zatrzymaj się

Operacja: -
Mnemonik: HALT
b7 b6 b5 b4 b3 b2 b1 b0
0 1 1 1 0 1 1 0 76
Opis: Instrukcja HALT wstrzymuje
działanie mikroprocesora aż do
otrzymania sygnału przerwania
lub zerowania. W stanie
wstrzymanym mikroprocesor
wykonuje instrukcje NOP w celu
podtrzymania cykli odświeżania
pamięci dynamicznych.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden

DI

DISABLE INTERRUPTS = Wyłącz przyjmowanie przerwań maskowanych

Operacja: IFF ← 0
Mnemonik: DI
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 1 0 0 1 1 F3
Opis: Rozkaz DI wyłącza przyjmowanie przerwań maskowanych przez wyzerowanie
przerzutników zezwoleń na przerwania (IFF1 i IFF2). Instrukcja ta wyłącza
przerwania maskowane podczas swojego wykonania.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden
Przykład: Gdy mikroprocesor wykonuje instrukcję DI, przyjmowanie przerwań maskowanych
zostaje zablokowane aż do kolejnego wykonania instrukcji EI, która odblokuje
przyjmowanie tych przerwań. Mikroprocesor nie odpowiada na sygnał Żądania
Obsługi Przerwania (INT).

EI

ENABLE INTERRUPTS = Włącz przyjmowanie przerwań maskowanych

Operacja: IFF ← 1
Mnemonik: EI
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 1 1 0 1 1 FB
Opis: Instrukcja EI ustawia oba przerzutniki zezwolenia na przerwania (IFF1 i IFF2)
na 1, co umożliwia rozpoznawanie przerwań maskowanych.
Uwaga: podczas wykonywania tej instrukcji oraz instrukcji po niej następującej
przerwania maskowane są zablokowane.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden
Przykład: Gdy mikroprocesor wykona instrukcje EI RETI, to przerwania maskowane
zostają włączone po wykonaniu instrukcji RETI.

IM 0

INTERRUPT MODE 0 = Tryb 0 przerwań

Operacja: -
Mnemonik: IM
Argument: 0
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 0 0 1 1 0 46
Opis: Instrukcja IM 0 ustawia tryb 0 reakcji na
przerwania. W trybie tym urządzenie
wysyłające przerwanie umieszcza dowolną
instrukcję na magistrali danych w celu
wykonania jej przez mikroprocesor.
Pierwszy bajt wielobajtowej instrukcji jest
odczytywany podczas cyklu potwierdzenia
przyjęcia przerwania. Kolejne bajty zostają
odczytane za pomocą zwykłych cykli
odczytu pamięci.
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki: Żaden

IM 1

INTERRUPT MODE 1 = Tryb 1 przerwań

Operacja: -
Mnemonik: IM
Argument: 1
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 1 0 1 1 0 56
Opis: Instrukcja IM 1 ustawia tryb 1 reakcji na
przerwania. W trybie tym urządzenie
mikroprocesor odpowiada na przerwanie
za pomocą restartu od adresu 0038H.
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki: Żaden

IM 2

INTERRUPT MODE 2 = Tryb 2 przerwań

Operacja: -
Mnemonik: IM
Argument: 2
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 1 1 1 1 0 5E
Opis: Instrukcja IM 2 ustawia wektorowy tryb 2
obsługi przerwań. Tryb ten pozwala na
wykonanie pośredniego skoku do
podprogramu znajdującego się
w dowolnym miejscu pamięci za pomocą
8-bitowego wektora dostarczonego przez
urządzenie zewnętrzne. Wektor ten staje
się następnie młodszymi 8 bitami
pośredniego wskaźnika, natomiast
rejestr I mikroprocesora dostarcza
najstarsze osiem bitów. Otrzymany w ten
sposób adres wskazuje dwie komórki
w tablicy wektorów skoków. Komórki te
zawierają adres początku procedury
obsługi przerwania.
Cykle Takty Czas
2 8 (4,4) 2,00μs
Zmieniane znaczniki: Żaden

do podrozdziału  do strony 

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: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.