Serwis Edukacyjny
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

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

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:   r ← r'
Mnemonik:   LD
Argumenty:   r,r'
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:   r ← n
Mnemonik:   LD
Argumenty:   r,n
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)
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 a 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)
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)
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
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
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
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
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
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
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)
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.
   
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)
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)
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
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
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
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 (3141),A umieści w komórce pamięci o adresie 3141H liczbę 0D7H.

LD A,I

      

LOAD DATA = Ładuj Dane

Operacja:   A ← I
Mnemonik:   LD
Argumenty:   A,I
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:   A ← R
Mnemonik:   LD
Argumenty:   A,R
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:   I ← A
Mnemonik:   LD
Argumenty:   I,A
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:   R ← A
Mnemonik:   LD
Argumenty:   R,A
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.

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 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.