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.
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
r ← r' |
Mnemonik: |
|
LD |
Argumenty: |
|
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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
r ← n |
Mnemonik: |
|
LD |
Argumenty: |
|
r,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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
r ← (HL) |
Mnemonik: |
|
LD |
Argumenty: |
|
r,(HL)
|
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 . |
|
|
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 . |
|
|
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+19 H, 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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
(HL) ← r |
Mnemonik: |
|
LD |
Argumenty: |
|
(HL),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 . |
|
|
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 . |
|
|
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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
(HL) ← n |
Mnemonik: |
|
LD |
Argumenty: |
|
(HL),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 . |
|
|
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 . |
|
|
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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
A ← (BC) |
Mnemonik: |
|
LD |
Argumenty: |
|
A,(BC)
|
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. |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
A ← (DE) |
Mnemonik: |
|
LD |
Argumenty: |
|
A,(DE)
|
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. |
|
|
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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
(BC) ← A |
Mnemonik: |
|
LD |
Argumenty: |
|
(BC),A
|
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 . |
|
|
LOAD DATA
= Ładuj Dane
|
Operacja: |
|
(DE) ← A |
Mnemonik: |
|
LD |
Argumenty: |
|
(DE),A
|
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 . |
|
|
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 . |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |