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 – 3

SPIS TREŚCI

Opis instrukcji mikroprocesora Z80 – 3

Grupa instrukcji wymiany, przesłań i przeszukiwań blokowych

EX DE,HL

EXCHANGE REGISTER PAIRS = Wymień pary rejestrów

Operacja: DE ←→ HL
Mnemonik: EX
Argumenty: DE,HL
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 0 1 1 EB
Opis: 2 bajtowa zawartość pary rejestrów DE zostaje
wymieniona z parę HL.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli zawartość pary rejestrów DE wynosi 2822H,
a zawartość pary rejestrów HL wynosi 499AH, to po
wykonaniu instrukcji EX DE,HL w parze rejestrów DE
znajdzie się 499AH, a w parze HL 2822H.

EX AF,AF'

EXCHANGE REGISTER PAIRS = Wymień pary rejestrów

Operacja: AF ←→ A'F'
Mnemonik: EX
Argumenty: AF,AF'
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 0 1 0 0 0 08
Opis: 2 bajtowa zawartość pary rejestrów AF zostaje
wymieniona z zawartością drugiej pary AF'. Para
rejestrów AF' składa się z alternatywnych rejestrów
akumulatora A' oraz znaczników F'.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli para rejestrów AF zawiera liczbę 9900H,
a para AF' zawiera liczbę 5944H, to instrukcja
EX AF,AF'
powoduje, iż w AF znajdzie się liczba
5944H
, a w AF' liczba 9900H.

EXX

EXCHANGE EXTRA REGISTERS = Wymień z rejestrami zapasowymi

Operacja: BC ←→ BC', DE ←→ DE', HL ←→ HL'
Mnemonik: EXX
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 0 1 1 0 0 1 D9
Opis: Każda 2 bajtowa zawartość par rejestrów BC, DE i HL zostaje
wymieniona z 2 bajtową zawartością odpowiednich rejestrów
zapasowych BC', DE' i HL'.
Cykle Takty Czas
1 4 1,00μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli pary rejestrów posiadały zawartość:
BC = 445AH   BC' = 0988H
DE = 3DA2H   DE' = 9300H
HL = 8859H   HL' = 00E7H

to po wykonaniu instrukcji EXX rejestry te przyjmą następującą
zawartość:

BC = 0988H   BC' = 445AH
DE = 9300H   DE' = 3DA2H
HL = 00E7H   HL' = 8859H

EX (SP),HL

EXCHANGE HL WITH STACK TOP = Wymień HL ze szczytem stosu

Operacja: H ←→ (SP+1), L ←→ (SP)
Mnemonik: EX
Argumenty: (SP),HL
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 0 0 1 1 E3
Opis: Młodszy bajt pary rejestrów HL jest wymieniany z zawartością komórki
pamięci o adresie określonym przez zawartość rejestru wskaźnika
stosu SP, a starszy bajt HL jest wymieniany z kolejną komórką pamięci
o adresie SP+1. Zawartość SP nie ulega zmianie.
Cykle Takty Czas
5 19 (4,3,4,3,5) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli para rejestrów HL zawiera 7012H, rejestr wskaźnika stosu zawiera
8856H
, komórka pamięci pod adresem 8856H zawiera bajt 11H,
a następna komórka pamięci o adresie 8857H zawiera bajt 22H,
to instrukcja EX (SP),HL powoduje, iż para rejestrów HL przyjmie
zawartość 2211H, w komórce pamięci o adresie 8856H zostanie
umieszczony bajt 12H, w następnej komórce o adresie 8857H zostanie
umieszczony bajt 70H, a rejestr wskaźnika stosu zatrzyma swą
zawartość 8856H.

EX (SP),IX

EXCHANGE IX WITH STACK TOP = Wymień IX ze szczytem stosu

Operacja: IXH ←→ (SP+1), IXL ←→ (SP)
Mnemonik: EX
Argumenty: (SP),IX
b7 b6 b5 b4 b3 b2 b1 b0
1 1 0 1 1 1 0 1 DD
1 1 1 0 0 0 1 1 E3
Opis: Młodszy bajt rejestru indeksowego IX jest wymieniany z zawartością
komórki pamięci o adresie określonym przez zawartość rejestru
wskaźnika stosu SP, a starszy bajt IX jest wymieniany z kolejną
komórką pamięci o adresie SP+1. Zawartość SP nie ulega zmianie.
Cykle Takty Czas
6 23 (4,4,3,4,3,5) 5,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr indeksowy IX zawiera 3988H, rejestr wskaźnika stosu
zawiera 0100H, komórka pamięci pod adresem 0100H zawiera bajt
90H
, a następna komórka pamięci o adresie 0101H zawiera bajt 48H,
to instrukcja EX (SP),IX powoduje, iż rejestr indeksowy IX przyjmie
zawartość 4890H, w komórce pamięci o adresie 0100H zostanie
umieszczony bajt 88H, w następnej komórce o adresie 0101H
zostanie umieszczony bajt 39H, a rejestr wskaźnika stosu zatrzyma
swą zawartość 0100H.

EX (SP),IY

EXCHANGE IY WITH STACK TOP = Wymień IY ze szczytem stosu

Operacja: IYH ←→ (SP+1), IYL ←→ (SP)
Mnemonik: EX
Argumenty: (SP),IX
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 1 1 1 0 1 FD
1 1 1 0 0 0 1 1 E3
Opis: Młodszy bajt rejestru indeksowego IY jest wymieniany z zawartością
komórki pamięci o adresie określonym przez zawartość rejestru
wskaźnika stosu SP, a starszy bajt IY jest wymieniany z kolejną
komórką pamięci o adresie SP+1. Zawartość SP nie ulega zmianie.
Cykle Takty Czas
6 23 (4,4,3,4,3,5) 5,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr indeksowy IY zawiera 3988H, rejestr wskaźnika stosu
zawiera 0100H, komórka pamięci pod adresem 0100H zawiera bajt
90H
, a następna komórka pamięci o adresie 0101H zawiera bajt 48H,
to instrukcja EX (SP),IY powoduje, iż rejestr indeksowy IY przyjmie
zawartość 4890H, w komórce pamięci o adresie 0100H zostanie
umieszczony bajt 88H, w następnej komórce o adresie 0101H
zostanie umieszczony bajt 39H, a rejestr wskaźnika stosu zatrzyma
swą zawartość 0100H.

LDI

LOAD DATA AND INCREMENT = Ładuj dane i zwiększ

Operacja: (DE) ← (HL), DEDE+1, HLHL+1, BCBC-1
Mnemonik: LDI
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 0 0 0 0 0 A0
Opis: Bajt danych jest przepisywany z komórki pamięci
adresowanej przez zawartość pary rejestrów HL do
komórki adresowanej parą rejestrów DE. Następnie
zawartości obu par rejestrów są zwiększane o 1,
a para rejestrów BC (ang. byte counter - licznik bajtów)
jest zmniejszana o 1.
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S nie jest zmieniany
Z nie jest zmieniany
H jest zerowany
P/V jest ustawiany na 1, jeśli BC-1 ≠ 0,
inaczej zerowany
N jest zerowany
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1111H, komórka
pamięci 1111H zawiera bajt 88H, para rejestrów DE
zawiera 2222H, a para rejestrów BC zawiera 7H, to
instrukcja LDI daje w wyniku następujące zawartości
rejestrów i komórek pamięci:
HL zawiera 1112H
(1111H) zawiera 88H
DE zawiera 2223H
(2222H) zawiera 88H
BC zawiera 6H

LDIR

LOAD DATA,  INCREMENT AND REPEAT = Ładuj dane, zwiększ i powtarzaj

Operacja: (DE) ← (HL), DEDE+1, HLHL+1, BCBC-1
Mnemonik: LDIR
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 1 0 0 0 0 B0
Opis: Ta dwubajtowa instrukcja przesyła bajt danych z komórki pamięci
adresowanej przez zawartość pary rejestrów HL do komórki adresowanej
parą rejestrów DE. Obie te pary rejestrów są zwiększane o 1, a para
rejestrów BC (ang. byte counter - licznik bajtów) jest zmniejszana o 1.
Jeśli w wyniku zmniejszenia rejestr BC osiągnie wartość 0, instrukcja
zostaje zakończona. Jeśli BC jest różne od zera, licznik rozkazów PC
zostaje zmniejszony o 2 i wykonanie instrukcji powtarza się. Rozpoznawane
są przerwania oraz wykonane zostają dwa cykle odświeżania po każdym
przesyle danych. Jeśli przed wykonaniem instrukcji para rejestrów BC
zostanie ustawiona na zero, to pętla przejdzie przez pełne 64 KB pamięci.

Dla BC ≠ 0:

Cykle Takty Czas
5 21 (4,4,3,5,5) 5,25μs
Dla BC = 0:
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S nie jest zmieniany
Z nie jest zmieniany
H jest zerowany
P/V jest zerowany
N jest zerowany
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1111H, para rejestrów DE zawiera 2222H,
para rejestrów BC zawiera 0003H i pamięć posiada następującą zawartość:
(1111H) zawiera 88H            (2222H) zawiera 66H
(1112H) zawiera 36H   (2223H) zawiera 59H
(1113H) zawiera 0A5H   (2224H) zawiera 0C5H

to wykonanie instrukcji LDIR spowoduje następującą zmianę zawartości
rejestrów i pamięci:

HL zawiera 1114H      
DE zawiera 2225H      
BC zawiera 0000H      
(1111H) zawiera 88H            (2222H) zawiera 88H
(1112H) zawiera 36H   (2223H) zawiera 36H
(1113H) zawiera 0A5H   (2224H) zawiera 0A5H

LDD

LOAD DATA AND DECREMENT = Ładuj dane i zmniejsz

Operacja: (DE) ← (HL), DEDE-1, HLHL-1, BCBC-1
Mnemonik: LDD
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 0 1 0 0 0 A8
Opis: Bajt danych jest przepisywany z komórki pamięci
adresowanej przez zawartość pary rejestrów HL
do komórki adresowanej parą rejestrów DE. Następnie
zawartości  par rejestrów DE, HL oraz BC (ang. byte
counter - licznik bajtów)
są zmniejszane o 1.
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S nie jest zmieniany
Z nie jest zmieniany
H jest zerowany
P/V jest ustawiany na 1, jeśli BC-1 ≠ 0,
inaczej zerowany
N jest zerowany
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1111H, komórka
pamięci 1111H zawiera bajt 88H, para rejestrów DE
zawiera 2222H a para rejestrów BC zawiera 7H, to
instrukcja LDD daje w wyniku następujące zawartości
rejestrów i komórek pamięci:
HL zawiera 1110H
(1111H) zawiera 88H
DE zawiera 2221H
(2222H) zawiera 88H
BC zawiera 6H

LDDR

LOAD DATA, DECREMENT AND REPEAT = Ładuj dane, zmniejsz i powtarzaj

Operacja: (DE) ← (HL), DEDE-1, HLHL-1, BCBC-1
Mnemonik: LDDR
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 1 1 0 0 0 B8
Opis: Ta dwubajtowa instrukcja przesyła bajt danych z komórki pamięci adresowanej
przez zawartość pary rejestrów HL do komórki adresowanej parą rejestrów DE.
Następnie pary rejestrów DE, HL i BC (ang. byte counter - licznik bajtów)
zmniejszane o 1. Jeśli w wyniku zmniejszenia rejestr BC osiągnie wartość 0,
instrukcja zostaje zakończona. Jeśli zawartość BC jest różna od zera, licznik
rozkazów PC zostaje zmniejszony o 2 i wykonanie instrukcji powtarza się.
Rozpoznawane są przerwania oraz wykonane zostają dwa cykle odświeżania
po każdym przesyle danych. Jeśli przed wykonaniem instrukcji para rejestrów
BC
zostanie ustawiona na zero, to pętla przejdzie przez pełne 64KB pamięci.

Dla BC ≠ 0:

Cykle Takty Czas
5 21 (4,4,3,5,5) 5,25μs
Dla BC = 0:
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S nie jest zmieniany
Z nie jest zmieniany
H jest zerowany
P/V jest zerowany
N jest zerowany
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1114H, para rejestrów DE zawiera 2225H, para
rejestrów BC zawiera 0003H i pamięć posiada następującą zawartość:
(1114H) zawiera 0A5H            (2225H) zawiera 0C5H
(1113H) zawiera 36H   (2224H) zawiera 59H
(1112H) zawiera 88H   (2223H) zawiera 66H

to wykonanie instrukcji LDDR spowoduje następującą zmianę zawartości
rejestrów i pamięci:

HL zawiera 1111H      
DE zawiera 2222H      
BC zawiera 0000H      
(1114H) zawiera 0A5H            (2225H) zawiera 0A5H
(1113H) zawiera 36H   (2224H) zawiera 36H
(1112H) zawiera 88H   (2223H) zawiera 88H

CPI

COMPARE AND INCREMENT = Porównaj i zwiększ

Operacja: A-(HL), HLHL+1, BCBC-1
Mnemonik: CPI
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 0 0 0 0 1 A1
Opis: Zawartość komórki pamięci adresowanej przez parę
rejestrów HL jest porównywana z zawartością
akumulatora. Powoduje to odpowiednie ustawienie
znaczników. Następnie para rejestrów HL jest
zwiększana o 1, a para BC (licznik bajtów) jest
zmniejszana o 1.
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S jest ustawiany na 1, gdy wynik ujemny. Inaczej
jest zerowany.
Z jest ustawiany na 1, jeśli A = (HL); inaczej
zerowany
H zostaje ustawiony na 1, jeśli wystąpiła pożyczka
z bitu 4; inaczej jest zerowany
P/V jest ustawiany na 1, jeśli BC-1 nie jest równe
zero; inaczej zerowany
N jest ustawiany na 1
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1111H, komórka
pamięci 1111H zawiera 3BH, akumulator zawiera
3BH
, a BC (licznik bajtów) zawiera 0001H, to
wykonanie instrukcji CPI spowoduje ustawienie BC
na 0000H, pary rejestrów HL na 1112H, znacznika Z
w rejestrze F na 1, znacznika P/V w F na 0.
Zawartość akumulatora ani komórki pamięci 1111H
nie ulega zmianie.

CPIR

COMPARE, INCREMENT AND REPEAT = Porównaj, zwiększ i powtarzaj

Operacja: A-(HL), HLHL+1, BCBC-1
Mnemonik: CPIR
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 1 0 0 0 1 B1
Opis: Zawartość komórki pamięci adresowanej przez parę rejestrów HL jest
porównywana z zawartością akumulatora. Powoduje to odpowiednie
ustawienie znaczników. Następnie para rejestrów HL jest zwiększana
o 1, a para BC (licznik bajtów) jest zmniejszana o 1. Jeśli po
zmniejszeniu para BC przyjmuje wartość zero lub było A = (HL),
instrukcja kończy się. Jeśli BC ≠ 0 i A ≠ (HL), licznik rozkazów zostaje
zmniejszony o 2 i instrukcja jest powtarzana. Rozpoznawane są
przerwania oraz wykonywane dwa cykle odświeżania pamięci po
każdym teście.

Jeśli przed wykonaniem instrukcji para BC zawiera zero, to instrukcja
przejdzie przez wszystkie komórki pamięci (64KB) o ile nie zostanie
napotkana zgodność z akumulatorem.

Dla BC ≠ 0 i A ≠ (HL):

Cykle Takty Czas
5 21 (4,4,3,5,5) 5,25μs
Dla BC = 0 lub A = (HL):
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S jest ustawiany na 1, gdy wynik ujemny. Inaczej jest zerowany.
Z jest ustawiany na 1, jeśli A = (HL); inaczej zerowany
H zostaje ustawiony na 1, jeśli wystąpiła pożyczka z bitu 4; inaczej
jest zerowany
P/V jest ustawiany na 1, jeśli BC-1 nie jest równe zero; inaczej
zerowany N jest ustawiany na 1
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1111H, akumulator zawiera 0F3H,
BC
zawiera 0007H, a komórki pamięci posiadają poniższą zawartość:
(1111H) zawiera 52H
(1112H) zawiera 00H
(1113H) zawiera 0F3H
to po wykonaniu CPIR zawartość pary rejestrów HL wynosi 1114H,
zawartość BC jest równa 0004H, znaczniki P/V i Z w rejestrze F
zostają ustawione na 1.

CPD

COMPARE AND DECREMENT = Porównaj i zmniejsz

Operacja: A-(HL), HLHL-1, BCBC-1
Mnemonik: CPD
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 0 1 0 0 1 A9
Opis: Zawartość komórki pamięci adresowanej przez parę
rejestrów HL jest porównywana z zawartością
akumulatora. Powoduje to odpowiednie ustawienie
znaczników. Następnie pary rejestrów HL i BC
(licznik bajtów)
są zmniejszane o 1.
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S jest ustawiany na 1, gdy wynik ujemny. Inaczej jest
zerowany.
Z jest ustawiany na 1, jeśli A = (HL); inaczej zerowany
H zostaje ustawiony na 1, jeśli wystąpiła pożyczka
z bitu 4; inaczej jest zerowany
P/V jest ustawiany na 1, jeśli BC-1 nie jest równe
zero; inaczej zerowany
N jest ustawiany na 1
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1111H, komórka
pamięci 1111H zawiera 3BH, akumulator zawiera
3BH, a BC (licznik bajtów) zawiera 0001H, to
wykonanie  instrukcji CPD spowoduje ustawienie BC
na 0000H, pary rejestrów HL na 1110H, znacznika Z
w rejestrze F na 1, znacznika P/V w F na 0. Zawartość
akumulatora ani komórki pamięci 1111H nie ulega
zmianie.

CPDR

COMPARE, DECREMENT AND REPEAT = Porównaj, zmniejsz i powtarzaj

Operacja: A-(HL), HLHL-1, BCBC-1
Mnemonik: CPDR
Argumenty: Brak
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
1 0 1 1 1 0 0 1 B9
Opis: Zawartość komórki pamięci adresowanej przez parę rejestrów HL jest
porównywana z zawartością akumulatora. Powoduje to odpowiednie
ustawienie znaczników. Następnie pary rejestrów HL i BC (licznik bajtów)
są zmniejszane o 1. Jeśli po zmniejszeniu para BC przyjmuje wartość
zero lub było A = (HL), instrukcja kończy się. Jeśli BC ≠ 0 i A ≠ (HL), licznik
rozkazów zostaje zmniejszony o 2 i instrukcja jest powtarzana.
Rozpoznawane są przerwania oraz wykonywane dwa cykle odświeżania
pamięci po każdym teście.

Jeśli przed wykonaniem instrukcji para BC zawiera zero, to instrukcja
przejdzie przez wszystkie komórki pamięci (64KB) o ile nie zostanie
napotkana zgodność z akumulatorem.

Dla BC ≠ 0:

Cykle Takty Czas
5 21 (4,4,3,5,5) 5,25μs
Dla BC = 0:
Cykle Takty Czas
4 16 (4,4,3,5) 4,00μs
Zmieniane znaczniki: S jest ustawiany na 1, gdy wynik ujemny. Inaczej jest zerowany.
Z jest ustawiany na 1, jeśli A = (HL); inaczej zerowany
H zostaje ustawiony na 1, jeśli wystąpiła pożyczka z bitu 4; inaczej jest
zerowany
P/V jest ustawiany na 1, jeśli BC-1 nie jest równe zero; inaczej zerowany
N jest ustawiany na 1
C nie jest zmieniany
Przykład: Jeśli para rejestrów HL zawiera 1118H, akumulator zawiera 0F3H, BC
zawiera 0007H, a komórki pamięci posiadają poniższą zawartość:
(1118H) zawiera 52H
(1117H) zawiera 00H
(1116H) zawiera 0F3H
to po wykonaniu CPDR zawartość pary rejestrów HL wynosi 1115H,
zawartość BC jest równa 0004H, znaczniki P/V i Z w rejestrze F zostają
ustawione na 1.

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.