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

SPIS TREŚCI

Opis instrukcji mikroprocesora Z80 – 1

Dla każdej instrukcji jest podany czas jej wykonania (E.T. - ang. Execution Time) w mikrosekundach przy założeniu, że mikroprocesor jest taktowany zegarem 4MHz. Podana jest całkowita liczba cykli maszynowych (ang. Machine Cycles) z całkowitymi taktami zegarowymi (ang. Clock States). Również oznaczono liczbę taktów dla każdego cyklu maszynowego. Na przykład:

Cykle: 2,  Takty: 7 (4,3),  Czas: 1,75μs

oznacza, że instrukcja ta składa się z 2 cykli maszynowych. Pierwszy cykl zawiera 4 takty zegara. Drugi cykl zawiera 3 takty zegara. W sumie cała instrukcja zajmuje 7 taktów zegarowych. Czas wykonania instrukcji wynosi 1,75μs.

Dla każdej instrukcji podany jest format rejestrów z najbardziej znaczącym bitem po stronie lewej, a z najmniej znaczącym po stronie prawej.

Grupa instrukcji ładowania 8 bitowego

LD r,r'

LOAD DATA = Ładuj Dane

Operacja: rr'
Mnemonik: LD
Argumenty: r,r'
b7 b6 b5 b4 b3 b2 b1 b0
0 1 r r'
Opis: Zawartość dowolnego rejestru r'
jest ładowana do rejestru r. Oba
rejestry r i r' odnoszą się do
rejestrów 8 bitowych A, B, C, D, E, H
lub L. W polu instrukcji są one
oznaczane w sposób następujący:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
1 4 1,0μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr H zawiera liczbę 8AH,
a rejestr E zawiera 10H, instrukcja
LD H,E powoduje, że w obu
rejestrach pojawi się zawartość 10H.

LD r,n

LOAD DATA = Ładuj Dane

Operacja: rn
Mnemonik: LD
Argumenty: r,n
b7 b6 b5 b4 b3 b2 b1 b0
0 0 ← r → 1 1 0
  n  
Opis: Ośmiobitowa liczba całkowita n
zostaje załadowana do dowolnego
rejestru r, gdzie r oznacza jeden
z rejestrów 8 bitowych A, B, C, D, E, H
lub L, które w kodzie instrukcji
oznaczane są następująco:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Po wykonaniu LD E,0A5H zawartość
rejestru E jest równa 0A5H.

LD r,(HL)

LOAD DATA = Ładuj Dane

Operacja: r ← (HL)
Mnemonik: LD
Argumenty: r,(HL)
b7 b6 b5 b4 b3 b2 b1 b0
0 1 ← r → 1 1 0
Opis: 8 bitowa zawartość komórki
pamięci wskazywanej przez
(HL) jest ładowana do rejestru r,
gdzie r oznacza jeden z rejestrów
8 bitowych A, B, C, D, E, H lub L.
Rejestry te są następująco
kodowane w polu r instrukcji:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli para rejestrów HL zawiera
liczbę 75A1H, a komórka pamięci
o adresie 75A1H zawiera bajt 58H,
to wykonanie LD C,(HL) umieści
w rejestrze C liczbę 58H.

LD r,(IX+d)

LOAD DATA = Ładuj Dane

Operacja: r ← (IX+d)
Mnemonik: LD
Argumenty: r,(IX+d)
b7 b6 b5 b4 b3 b2 b1 b0
1 1 0 1 1 1 0 1 DD
0 1 ← r → 1 1 0  
  d    
Opis: Argument (IX+d) (zawartość
komórki pamięci wskazywanej
przez adres będący sumą
zawartości rejestru indeksowego
IX
oraz przesunięcia d - liczby
8 bitowej w kodzie U2)
jest
ładowany do rejestru r, gdzie r
oznacza jeden z 8 bitowych
rejestrów ogólnego przeznaczenia
A, B, C, D, E, H lub L - i jest
definiowany w polu r kodu
instrukcji następująco:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
5 19 (4,4,3,5,3) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr indeksowy IX
zawiera liczbę 25AFH, to
instrukcja LD B,(IX+19H)
powoduje obliczenie sumy
25AFH+19H
, która wskazuje
na komórkę pamięci o adresie
25C8H
. Jeśli pod tym adresem
umieszczony jest bajt 39H, to
w efekcie wykonania tej instrukcji
w rejestrze B znajdzie się również
liczba 39H.

LD r,(IY+d)

LOAD DATA = Ładuj Dane

Operacja: r ← (IY+d)
Mnemonik: LD
Argumenty: r,(IY+d)
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 1 1 1 0 1 FD
0 1 ← r → 1 1 0  
  d    
Opis: Argument (IY+d) (zawartość
komórki pamięci wskazywanej
przez adres będący sumą
zawartości rejestru indeksowego
IY
oraz przesunięcia d - liczby
8 bitowej w kodzie U2)
jest
ładowany do rejestru r, gdzie r
oznacza jeden z 8 bitowych
rejestrów ogólnego przeznaczenia
A, B, C, D, E, H lub L - i jest
definiowany w polu r kodu
instrukcji następująco:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
5 19 (4,4,3,5,3) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr indeksowy IY
zawiera liczbę 25AFH, to
instrukcja LD B,(IY+19H)
powoduje obliczenie sumy
25AFH+19H
, która wskazuje
na komórkę pamięci o adresie
25C8H
. Jeśli pod tym adresem
umieszczony jest bajt 39H, to
w efekcie wykonania tej instrukcji
w rejestrze B znajdzie się również
liczba 39H.

LD (HL),r

LOAD DATA = Ładuj Dane

Operacja: (HL) ← r
Mnemonik: LD
Argumenty: (HL),r
b7 b6 b5 b4 b3 b2 b1 b0
0 1 1 1 0 ← r →
Opis: Zawartość rejestru r jest ładowana
do komórki pamięci, której adres
zawiera para rejestrów HL. Symbol r
oznacza jeden z rejestrów
A
, B, C, D, E, H lub L. W kodzie
instrukcji pole r przyjmuje
następujące wartości:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli zawartość pary rejestrów HL
wskazuje komórkę pamięci 2146H,
a rejestr B zawiera bajt 29H, to po
wykonaniu instrukcji LD (HL),B
w komórce o adresie 2146H również
znajdzie się 29H.

LD (IX+d),r

LOAD DATA = Ładuj Dane

Operacja: (IX+d) ← r
Mnemonik: LD
Argumenty: (IX+d),r
b7 b6 b5 b4 b3 b2 b1 b0
1 1 0 1 1 1 0 1 DD
0 1 1 1 0 ← r →  
  d    
Opis: Zawartość rejestru r jest ładowana
do komórki pamięci, której adres
jest określony przez sumę zawartości
rejestru indeksowego IX oraz
przesunięcia d w kodzie U2. Symbol r
oznacza jeden z rejestrów
A, B, C, D, E, H lub L. W kodzie instrukcji
pole r przyjmuje następujące wartości:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
5 19 (4,4,3,5,3) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr C zawiera bajt 1CH,
a rejestr indeksowy IX zawiera 3100H,
to instrukcja LD (IX+6H),C obliczy
sumę 3100H+6H i umieści w komórce
pamięci o adresie 3106H liczbę 1CH.

LD (IY+d),r

LOAD DATA = Ładuj Dane

Operacja: (IY+d) ← r
Mnemonik: LD
Argumenty: (IY+d),r
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 1 1 1 0 1 FD
0 1 1 1 0 ← r →  
  d    
Opis: Zawartość rejestru r jest ładowana
do komórki pamięci, której adres
jest określony przez sumę
zawartości rejestru indeksowego IY
oraz przesunięcia d w kodzie U2.
Symbol r oznacza jeden z rejestrów
A, B, C, D, E, H lub L. W kodzie
instrukcji pole r przyjmuje
następujące wartości:
Rejestr   r
A
B
C
D
E
H
L
  111
000
001
010
011
100
101
Cykle Takty Czas
5 19 (4,4,3,5,3) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr C zawiera bajt 48H, a rejestr
indeksowy IY zawiera 2A11H, to instrukcja
LD (IY+4H),C
obliczy sumę 2A11H+4H
i umieści w komórce pamięci o adresie
2A15H
liczbę 48H.

LD (HL),n

LOAD DATA = Ładuj Dane

Operacja: (HL) ← n
Mnemonik: LD
Argumenty: (HL),n
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 1 0 1 1 0 36
  n    
Opis: Liczba całkowita n zostaje
umieszczona w komórce
pamięci, której adres zawiera
para rejestrów HL.
 
Cykle Takty Czas
3 10 (4,3,3) 2,50μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli para rejestrów HL zawiera
4444H, to instrukcja
LD (HL),28H powoduje
umieszczenie w komórce
pamięci o adresie 4444H liczby
28H.

LD (IX+d),n

LOAD DATA = Ładuj Dane

Operacja: (IX+d) ← n
Mnemonik: LD
Argumenty: (IX+d),n
b7 b6 b5 b4 b3 b2 b1 b0
1 1 0 1 1 1 0 1 DD
0 0 1 1 0 1 1 0 36
  d    
  n    
Opis: Liczba całkowita n zostaje
umieszczona w komórce pamięci,
której adres określa suma
zawartości rejestru indeksowego
IX
oraz przesunięcia d w kodzie U2.
 
Cykle Takty Czas
5 19 (4,4,3,5,3) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr indeksowy IX zawiera
liczbę 212AH, to instrukcja
LD (IX+5H),5AH umieści bajt
5AH w komórce pamięci o adresie
212AH+5H = 212AFH.

LD (IY+d),n

LOAD DATA = Ładuj Dane

Operacja: (IY+d) ← n
Mnemonik: LD
Argumenty: (IY+d),n
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 1 1 1 0 1 FD
0 0 1 1 0 1 1 0 36
  d    
  n    
Opis: Liczba całkowita n zostaje
umieszczona w komórce pamięci,
której adres określa suma
zawartości rejestru indeksowego
IY oraz przesunięcia d w kodzie U2..
 
Cykle Takty Czas
5 19 (4,4,3,5,3) 4,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli rejestr indeksowy IY zawiera
liczbę 0A940H, to instrukcja
LD (IY+10H),97H umieści bajt
97H w komórce pamięci o adresie
0A940H+10H = 0A950H.

LD A,(BC)

LOAD DATA = Ładuj Dane

Operacja: A ← (BC)
Mnemonik: LD
Argumenty: A,(BC)
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 0 1 0 1 0 0A
Opis: Zawartość komórki pamięci,
której adres przechowuje para
rejestrów BC, jest ładowana
do akumulatora A.
 
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli para rejestrów BC przechowuje
liczbę 4747H, a w komórce pamięci
o adresie 4747H znajduje się bajt
12H
, to instrukcja LD A,(BC)
umieści bajt 12H w rejestrze A.

LD A,(DE)

LOAD DATA = Ładuj Dane

Operacja: A ← (DE)
Mnemonik: LD
Argumenty: A,(DE)
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 1 1 0 1 0 1A
Opis: Zawartość komórki pamięci,
której adres przechowuje para
rejestrów DE, jest ładowana
do akumulatora.
 
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli para rejestrów BC przechowuje
liczbę 30A2H, a w komórce pamięci
o adresie 30A2H znajduje się
bajt 22H, to instrukcja LD A,(DE)
umieści bajt 22H w rejestrze A.

LD A,(nn)

LOAD DATA = Ładuj Dane

Operacja: A ← (nn)
Mnemonik: LD
Argumenty: A,(nn)
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 1 1 0 1 0 3A
  n   LSB
  n   MSB
Opis: Zawartość komórki pamięci,
której adres jest określony
przez argument nn, jest ładowana
do akumulatora. Pierwszy bajt
argumentu nn za kodem
operacyjnym instrukcji jest
młodszym bajtem adresu, drugi
jest starszym bajtem - kolejność
LSB-MSB.
 
Cykle Takty Czas
4 13 (4,3,3,3) 3,25μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli nn jest liczbą 8832H, a
zawartość komórki pamięci o adresie
8832H
wynosi 04H, to instrukcja
LD A,(8832H) umieści w rejestrze A
bajt 04H.

LD (BC),A

LOAD DATA = Ładuj Dane

Operacja: (BC) ← A
Mnemonik: LD
Argumenty: (BC),A
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 0 0 0 1 0 02
Opis: Zawartość akumulatora jest
umieszczana w komórce pamięci,
której adres przechowuje para
rejestrów BC.
 
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli akumulator zawiera 7AH,
a para rejestrów BC zawiera 1212H,
to instrukcja LD (BC),A umieści
w komórce pamięci o adresie 1212H
liczbę 7AH.

LD (DE),A

LOAD DATA = Ładuj Dane

Operacja: (DE) ← A
Mnemonik: LD
Argumenty: (DE),A
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 1 0 0 1 0 12
Opis: Zawartość akumulatora jest
umieszczana w komórce
pamięci, której adres
przechowuje para
rejestrów DE.
 
Cykle Takty Czas
2 7 (4,3) 1,75μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli akumulator zawiera
0A0H
, a para rejestrów DE
zawiera 1128H, to instrukcja
LD (DE),A
umieści w komórce
pamięci o adresie 1128H liczbę
0A0H
.

LD (nn),A

LOAD DATA = Ładuj Dane

Operacja: (nn) ← A
Mnemonik: LD
Argumenty: (nn),A
b7 b6 b5 b4 b3 b2 b1 b0
0 0 1 1 0 0 1 0 32
  n   LSB
  n   MSB
Opis: Zawartość akumulatora jest
umieszczana w komórce pamięci,
której adres podaje argument nn.
Za kodem instrukcji jest
umieszczany kolejno młodszy
i starszy bajt nn - LSB-MSB.
 
Cykle Takty Czas
4 13 (4,3,3,3) 3,25μs
Zmieniane znaczniki: Żaden.
Przykład: Jeśli akumulator zawiera bajt 0D7H,
to instrukcja LD (3141H),A umieści
w komórce pamięci o adresie 3141H
liczbę 0D7H.

LD A,I

LOAD DATA = Ładuj Dane

Operacja: AI
Mnemonik: LD
Argumenty: A,I
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 1 0 1 1 1 57
Opis: Zawartość rejestru wektora
przerwań I jest ładowana do
akumulatora.
 
Cykle Takty Czas
2 9 (4,5) 2,25μs
Zmieniane znaczniki: S zostaje ustawiony na 1, jeśli
rejestr I przechowuje wartość
ujemną. Inaczej S jest zerowany.
Z zostaje ustawiony na 1, jeśli
rejestr I przechowuje zero, inaczej
jest zerowany.
H jest zerowany.
P/V zawiera zawartość IFF2 -
przerzutnika zezwolenia na
przerwania maskowane.
N jest zerowany.
C nie ulega zmianie.
Jeśli w czasie wykonywania tej
instrukcji pojawi się przerwanie,
to znacznik parzystości P/V
zawiera zero.

LD A,R

LOAD DATA = Ładuj Dane

Operacja: AR
Mnemonik: LD
Argumenty: A,R
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 1 1 1 1 1 5F
Opis: Zawartość rejestru odświeżania
pamięci R jest ładowana do
akumulatora.
 
Cykle Takty Czas
2 9 (4,5) 2,25μs
Zmieniane znaczniki: S zostaje ustawiony na 1, jeśli
rejestr R przechowuje wartość
ujemną, inaczej jest zerowany.
Z zostaje ustawiony na 1, jeśli
rejestr R przechowuje zero,
inaczej jest zerowany.
H jest zerowany.
P/V zawiera zawartość IFF2 -
przerzutnika zezwolenia na
przerwania maskowane
N jest zerowany
C nie ulega zmianie.
Jeśli w czasie wykonywania tej
instrukcji pojawi się przerwanie,
to znacznik parzystości P/V
zawiera zero.

LD I,A

LOAD DATA = Ładuj Dane

Operacja: IA
Mnemonik: LD
Argumenty: I,A
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 0 0 1 1 1 47
Opis: Zawartość akumulatora zostaje
załadowana do rejestru wektora
przerwań I.
 
Cykle Takty Czas
2 9 (4,5) 2,25μs
Zmieniane znaczniki: Żaden.

LD R,A

LOAD DATA = Ładuj Dane

Operacja: RA
Mnemonik: LD
Argumenty: R,A
b7 b6 b5 b4 b3 b2 b1 b0
1 1 1 0 1 1 0 1 ED
0 1 0 0 1 1 1 1 4F
Opis: Zawartość akumulatora zostaje
załadowana do rejestru
odświeżania pamięci R.
 
Cykle Takty Czas
2 9 (4,5) 2,25μ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.