Tervezési segédlet a Z80 (MK3880) típusú mikroprocesszor alkalmazásához

VIII. rész: CPU utasításkészlet

Ezen tervezési segédlet
része annak a Z-80-as sorozatnak, amely a - "uP-k alkalmazása" c. témafigyelésünk 1981/4- és 1982/1.,2-3. sz. kérdőívein történő felmérés alapján - katalógus-hiánnyal küzdő kollégák részére készült. A felhasználók további kérésére a sorozat egy részletes CPU utasításkészlettel bővült (Forrás: Zilog - 1982.május).
A Z-80-as sorozatunk így az alábbi részekből áll:

I. rész:
CPU
II-III. rész:
PIO, CTC
IV. rész:
SIO
V. rész:
COMBO
VI. rész:
DMA, Óra / RAM, VCU, A/D konverter
VII. rész:
Alkalmazástechnikai példatár
VIII. rész:
CPU utasításkészlet

Bevezetés
A kézikönyv a Z80 CPU teljes utasításkészletének részletes ismertetését tartalmazza.
Az egyes utasításokat a műveleti kód, funkció, az assembler mnemonikus formátum és a műveleti kód (OP kód) leírásával ismertetjük. Az utasítások funkciójának ismertetését az utasítás végrehajtási idejének, M ciklusainak, T órajel-periódusainak és a jelzőbit (flag) regiszter érintett bitjeinek megadásával is szemléltetjük. Amennyiben a jelzőbit regiszter állapotát az utasítás nem befolyásolja, úgy ezt a leírásban külön nem tüntettük fel . Végül az utasítás működését egy példán keresztül illusztráljuk.

Megjegyzés:
A végrehajtási idő (továbbiakban: V.i.) minden egyes utasítás esetén 4 MHz-es CPU órajel frekvenciát feltételezve ms-ban értelmezendő.
Az utasítás végrehajtásához szükséges gépi ciklusok (M) számát a teljes órajel-periódussal (T állapot) együtt adjuk meg. Emellett az egyes M gépi ciklusokon belüli T órajel-periódusok számát is jelezzük. Pl.:

M ciklusok: 2 T állapotok: 7 (4,3) 4 MHz V.i.: 1,75

Ez úgy értelmezendő, hogy az utasítás két gépi ciklusból áll. Az első gépi ciklus 4 órajel-periódusból (T állapotból) áll, míg a második gépi ciklus 3 órajel-periódust tartalmaz. Így az utasítás összesen 7 órajel-periódus hosszúságú, ezért 1.75 ms végrehajtási időt igényel.
A regiszter-formátumokban minden egyes utasítás esetén a legnagyobb helyértékű a bal szélső bit, míg a legkisebb helyértékű a jobb szélső bit.


ADC HL,ss


Művelet: HLHL + ss + CY
Formátum:

OP kód

Operandusok
 
ADC
HL,ss
1
1
1
0
1
1
0
1
ED
0
1
s
s
1
0
1
0
 

Leírás:
Az ss regiszterpár tartalma (a BC, DE, HL vagy SP regiszterpárok bármelyike / az átvitel bittel (Carry Flag) együtt /a C jelzőbit az F regiszterben) hozzáadódik a HL regiszterpár tartalmához, és az eredmény a HL regiszterbe kerül. Az ss operandus az assemblerrel fordított tárgykódban a következő:

Regiszterpár
ss
BC
00
DE
01
HL
10
SP
11
M ciklusok: 4 T állapotok: 15 (4,4,4,3) 4 MHz V.i.: 3,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 11-es biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 15-ös biten átvitel keletkezik; egyébként törlődik

Példa:
Ha a BC regiszterpár 2222H-t, a HL regiszterpár 5437H-t tartalmaz, és az átvitel bit 1-be van állítva, az
ADC HL,BC
végrehajtása után a HL tartalma 765AH lesz.


ADC A,s
Művelet: AA + ss + CY
Formátum:

OP kód

Operandusok
 
ADC
A,s

Az s operandus r, n, (HL),(IX+d) vagy (IY+d) bármelyike lehet, ahogy ez az ADD utasításnál is szerepel. A különböző OP kód-operandus kombinációk a tárgykódban a következők lehetnek:

ADC A,r
1
0
0
0
1
<
r
>
 
ADC A,n
1
1
0
0
1
1
1
0
CE
<
-
-
n
-
-
-
>
 
ADC A,(HL)
1
0
0
0
1
1
1
0
8E
ADC A,(IX+d)
1
1
0
1
1
1
0
1
DD
1
0
0
0
1
1
1
0
8E
<
-
-
d
-
-
-
>
 
ADC A,(IY+d)
1
1
1
1
1
1
0
1
FD
1
0
0
0
1
1
1
0
8E
<
-
-
d
-
-
-
>
 

az r a B,C,D,E,H,L vagy A regisztereket a fenti tárgykódban a következőképpen azonosítja:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az s operandus az átvitel bittel együtt (C bit az F regiszterben) hozzáadódik az akkumulátor tartalmához és az eredmény az akkumulátorban kerül tárolásra.

Utasítás M ciklusok T állapotok 4 MHz V.i.
ADC A,r
1
4
1,00
ADC A,n
2
7 (4, 3)
1,75
ADC A,(HL)
2
7 (4, 3)
1,75
ADC A,(IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
ADC A,(IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 7-es biten átvitel keletkezik; egyébként törlődik

Példa:
Abban az esetben, ha az akkumulátor 16H-t tartalmaz, az átvitel bit 1-es állapotban van, a HL regiszterpár 6666H-t és a 6666H című memóriarekesz 10H-t tartalmaz, az
ADC A,(HL)
végrehajtása után az akkumulátor tartalma 27H lesz.


ADD A,n
Művelet: AA + n
Formátum:

OP kód

Operandusok
 
ADD
A,n
1
1
0
0
0
1
1
0
C6
<
-
-
n
-
-
-
>
 

Leírás:
Az n egész szám hozzáadódik az akkumulátor tartalmához és az eredmény az akkumulátorban kerül tárolásra.

M ciklusok: 2 T állapotok: 7 (4,3) 4 MHz V.i.: 1,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 7-es biten átvitel keletkezik; egyébként törlődik

Példa:
Ha az akkumulátor tartalma 23H, az
ADD A,33H
végrehajtásának eredményeként az akkumulátor tartalma 56H lesz.


ADD A,r
Művelet: AA + r
Formátum:

OP kód

Operandusok
 
ADD
A,r
1
0
0
0
0
<
r
>

Leírás:
Az r regiszter tartalma hozzáadódik az akkumulátor tartalmához, és az eredmény az akkumulátorban tárolódik. Az r szimbólum a tárgykódban a kódolt A,B,C,D,E,H vagy L regisztereket azonosítja:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101
M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 7-es biten átvitel keletkezik; egyébként törlődik

Példa:
Ha az akkumulátor tartalma 44H és a C regiszteré 11H, az
ADD A,C
végrehajtásának eredményeként az akkumulátor tartalma 55H lesz.


ADD A,(HL)
Művelet: AA + (HL)
Formátum:

OP kód

Operandusok
 
ADD
A,(HL)
1
0
0
0
0
1
1
0
86

Leírás:
A HL regiszterpár által tartalmazott memóriacímen lévő byte hozzáadódik az akkumulátor tartalmához és az eredmény az akkumulátorban tárolódik.

M ciklusok: 2 T állapotok: 7 (4,3) 4 MHz V.i.: 1,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 7-es biten átvitel keletkezik; egyébként törlődik

Példa:
Ha az akkumulátor tartalma A0H, a HL regiszterpár tartalma 2323H, és a 2323H című memóriarekeszben lévő byte 08H, az
ADD A,(HL)
végrehajtásának eredményeként az akkumulátor tartalma A8H lesz.


ADD A,(IX+d)
Művelet: AA + (IX+d)
Formátum:

OP kód

Operandusok
 
ADD
A,(IX+d)
1
1
0
1
1
1
0
1
DD
1
0
0
0
0
1
1
0
86
<
-
-
d
-
-
-
>
 

Leírás:
Az index regiszter (IX regiszterpár) tartalma hozzáadódik a d eltolási címhez. Az így kapott eredmény egy memóriacímre mutat, melynek tartalma hozzáadódik az akkumulátor tartalmához és az eredmény az akkumulátorban kerül tárolásra.

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.: 4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba, kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 7-es biten átvitel keletkezik; egyébként törlődik

Példa:
Ha az akkumulátor tartalma 11H, az IX index regiszter tartalma 1000H, és az 1005H című memóriarekesz tartalma 22H, az
ADD A,(IX+5H)
végrehajtásának eredményeként az akkumulátor tartalma 33H lesz.


ADD A,(IY+d)
Művelet: AA + (IY+d)
Formátum:

OP kód

Operandusok
 
ADD
A,(IY+d)
1
1
1
1
1
1
0
1
FD
1
0
0
0
0
1
1
0
86
<
-
-
d
-
-
-
>
 

Leírás:
Az index regiszter (IY regiszterpár) tartalma hozzáadódik a d eltolási címhez. Az így kapott eredmény egy memóriacímre mutat, melynek a tartalma hozzáadódik az akkumulátor tartalmához, és az eredmény az akkumulátorban kerül tárolásra.

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.: 4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba, kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
törlődik
C:
1-es állapotba kerül, ha a 7-es biten átvitel keletkezik; egyébként törlődik

Példa:
Ha az akkumulátor tartalma 11H, az IY index regiszterpár tartalma 1000H, és az 1005H című memóriarekesz tartalma 22H, az
ADD A,(IY+5H)
végrehajtásának eredményeként az akkumulátor tartalma 33H lesz.


ADD HL,ss
Művelet: HLHL + ss
Formátum:

OP kód

Operandusok
 
ADD
HL,ss
0
0
s
s
1
0
0
1

Leírás:
Az ss regiszterpár (a BC, DE, HL vagy SP regiszterpárok bármelyike) tartalma hozzáadódik a HL regiszterpár tartalmához, és az eredmény a HL regiszterbe kerül. Az ss operandus jelentése:

Regiszterpár
ss
BC
00
DE
01
HL
10
SP
11

 

M ciklusok: 3 T állapotok: 11 (4, 4, 3) 4 MHz V.i.: 2,75

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
1-es állapotba kerül, ha a 11-es biten átvitel keletkezik; egyébként törlődik
P/V:
változatlan marad
N:
törlődik
C:
1-es állapotba kerül, ha a 15-ös biten átvitel keletkezik; egyébként törlődik

Példa:
Ha a HL regiszterpár tartalmazza a 4242H egész számot és a DE regiszterpár 1111H-t, az
ADD HL,DE
végrehajtása után a HL regiszterpár tartalma 5353H lesz.


ADD IX,pp
Művelet: IXIX + pp
Formátum:

OP kód

Operandusok
 
ADD
IX,pp
1
1
0
1
1
1
0
1
DD
0
0
p
p
1
0
0
1
 

Leírás:
A pp regiszterpár (a BC, DE, IX vagy SP regiszterpárok bármelyike) tartalma hozzáadódik az IX index regiszter tartalmához, és az eredmény az IX regiszterbe kerül. A pp operandus a következőket jelenti:

Regiszterpár
pp
BC
00
DE
01
IX
10
SP
11

 

M ciklusok: 3 T állapotok: 15 (4, 4, 4, 3) 4 MHz V.i.: 3,75

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
1-es állapotba kerül, ha a 11-es biten átvitel keletkezik; egyébként törlődik
P/V:
változatlan marad
N:
törlődik
C:
1-es állapotba kerül, ha a 15-ös biten átvitel keletkezik; egyébként törlődik

Példa:
Ha az IX index regiszter tartalma 3333H és a BC regiszterpár tartalma 5555H, az
ADD IX,BC
végrehajtásának eredményeként az IX tartalma 8888H lesz.


ADD IY+rr
Művelet: IYIY + rr
Formátum:

OP kód

Operandusok
 
ADD
IY,rr
1
1
1
1
1
1
0
1
FD
0
0
r
r
1
0
0
1
 

Leírás:
Az rr regiszterpár (a BC, DE, IY vagy SP regiszterpárok bármelyike) tartalma hozzáadódik az IY index regiszter tartalmához, és az eredmény az IY regiszterbe kerül. Az rr operandus jelentése a következő:

Regiszterpár
rr
BC
00
DE
01
IY
10
SP
11

 

M ciklusok: 4 T állapotok: 15 (4, 4, 4, 3) 4 MHz V.i.: 3,75

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
1-es állapotba kerül, ha a 11-es biten átvitel keletkezik; egyébként törlődik
P/V:
változatlan marad
N:
törlődik
C:
1-es állapotba kerül, ha a 15-ös biten átvitel keletkezik; egyébként törlődik

Példa:
Ha ez IY index regiszter tartalma 3333H és a BC regiszterpár tartalma 5555H, az
ADD IY,BC
végrehajtása után az IY tartalma 8888H lesz.


AND s
Művelet: AA^s
Formátum:

OP kód

Operandusok
 
AND
s

Az s operandus az r, n, (HL), (IX+d) vagy (IY+d)bármelyike, amint azt az ezzel az utasítással analóg ADD utasításoknál meghatároztuk. Ezek a különböző lehetséges OP kód-operaadus kombinációk a tárgykádban a következők lehetnek:

AND r
1
0
1
0
0
<
r
>
 
AND n
1
1
1
0
0
1
1
0
E6
<
-
-
n
-
-
-
>
 
AND (HL)
1
0
1
0
0
1
1
0
A6
AND (IX+d)
1
1
0
1
1
1
0
1
DD
1
0
1
0
0
1
1
0
A6
<
-
-
d
-
-
-
>
 
AND (IY+d)
1
1
1
1
1
1
0
1
FD
1
0
1
0
0
1
1
0
A6
<
-
-
d
-
-
-
>
 

r B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Olyan bitenkénti logikai ÉS művelet, amely az s operandus által meghatározott byte, és az akkumulátor által tartalmazott byte között valósul meg. Az eredmény az akkumulátorban tárolódik.

Utasítás M ciklusok T állapotok 4 MHz V.i.
AND r
1
4
1,00
AND n
2
7 (4, 3)
1,75
AND (HL)
2
7 (4, 3)
1,75
AND (IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
AND (IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha, az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik N: törlődik
N:
törlődik
C:
törlődik

Példa:
Ha a B regiszter 7BH-t (01111011), és az akkumulátor C3H-t (11000011) tartalmaz, az
AND B
végrehajtásának eredményeként az akkumulátor tartalma 43H (01000011) lesz.


BIT b,(HL)
Művelet: Z(HL)b
Formátum:

OP kód

Operandusok
 
BIT
b,(HL)
1
1
0
0
1
0
1
1
CB
0
1
<
r
>
1
1
0
 

Leírás:
Ennek az utasításnak a végrehajtása után a jelzőbit regiszterben lévő Z bit a HL regiszterpár tartalma által megcímzett memóriarekeszen belül a b operandus által kijelölt bit komplemensét tartalmazza. A b operandus jelentése:

Vonatkozó bit
b
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111

 

M ciklusok: 3 T állapotok: 12 (4, 4, 4) 4 MHz V.i.: 3,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha, a specifikált bit 0; egyébként törlődik
H:
1-es állapotba kerül
P/V:
ismeretlen
N:
törlődik
C:
változatlan marad

Példa:
Ha a HL regiszterpár 4444H-t, és a 4-es bit a 4444H című memóriarekeszben 1-et tartalmaz, a
BIT 4,(HL)
végrehajtásának eredményeként a Z bit 0-t, a 4-es bit pedig a. 4444H című memória rekeszben változatlanul 1-et fog tartalmazni.


BIT b,(IX+d)
Művelet: Z(IX+d)b
Formátum:

OP kód

Operandusok
 
BIT
b,(IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
1
<
b
>
1
1
0
 

Leírás:
Ennek az utasításnak a végrehajtása után a Z bit tartalmazni fogja az IX regiszterpár (IX index regiszter) és a d 2-es komplemensű egész számként értelmezett címkiegészítés összege által meghatározott memóriarekesz azon bitjének negáltját, melyet a b operandus jelöl ki. A b operandus jelentése:

Vonatkozó bit
b
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111

 

M ciklusok: 5 T állapotok: 20 (4, 4, 3, 5, 4) 4 MHz V.i.: 5,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha a b operandus által specifikált bit 0; egyébként törlődik
H:
1-es állapotba kerül
P/V:
ismeretlen
N:
törlődik
C:
változatlan marad

Példa:
Ha az IX index regiszter 2000H-t tartalmaz, és a 6-os bit a 2004H című memóriarekeszben 1-et tartalmaz, a
BIT 6,(IX+4H)
végrehajtásának eredményeként a Z bit 0-t fog tartalmazni, a 2004H című memóriarekeszben a 6-os bit pedig változatlanul 1-et.


BIT b,(IY+d)
Művelet: Z(IY+d)b
Formátum:

OP kód

Operandusok
 
BIT
b,(IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
1
<
b
>
1
1
0
 

Leírás:
Ennek az utasításnak a végrehajtása után a Z bit tartalmazni fogja az IY regiszterpár (IY index regiszter) és a d 2-es komplemensű egész számként értelmezett címkiegészítés összege által meghatározott memóriarekesz azon bitjének negáltját, melyet a b operandus jelöl ki. A b operandus jelentése:

Vonatkozó bit
b
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111

 

M ciklusok: 5 T állapotok: 20 (4, 4, 3, 5, 4) 4 MHz V.i.: 5,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha a b operandus által specifikált bit 0; egyébként törlődik
H:
1-es állapotba kerül
P/V:
ismeretlen
N:
törlődik
C:
változatlan marad

Példa:
Ha az IY index regiszter tartalma 2000H, és a 6-os bit a 2004H című memóriarekeszben 1-et tartalmaz, a
BIT 6,(IY+4H)
végrehajtásénak eredményeként a Z bit változatlanul 0-t, a 6-os bit a 2004H című memóriarekeszben továbbra is 1-et tartalmaz.


BIT b,r
Művelet: Zrb
Formátum:

OP kód

Operandusok
 
BIT
b,r
1
1
0
0
1
0
1
1
CB
0
1
<
b
>
<
r
>
 

Leírás:
Az utasítás az r operaadus által meghatározott regiszternek a b operandus által kijelölt bitjét invertálva a jelzőbit regiszter Z bitjébe tölti. Az r és b operancusok tárgykódban a következőket jelenthetik:

Vonatkozó bit
b
Regiszter
r
0
000
B
000
1
001
C
001
2
010
D
010
3
011
E
011
4
100
H
100
5
101
L
101
6
110
A
111
7
111
   

 

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.: 2,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha a b operandus által specifikált bit 0; egyébként törlődik
H:
1-es állapotba, kerül
P/V:
ismeretlen
N:
törlődik
C:
változatlan marad

Példa:
Ha a 2-es bit a B regiszterben 0-t tartalmaz, a
BIT 2,B
végrehajtásának eredményeként a Z bit 1-et fog tartalmazni, a 2-es bit a B regiszterben pedig 0 marad.


CALL cc,nn
Művelet: Ha cc igaz: (SP-1)PCh
  (SP-2)PCL, PCnn
Formátum:

OP kód

Operandusok
 
CALL
cc,nn
1
1
<
cc
>
1
0
0
<
-
-
n
-
-
-
>
<
-
-
n
-
-
-
>

Megjegyzés: A fenti tárgykód két n operandusa közül az első a két byte-os memóriacím alacsonyabb helyiértékű byte-ja.

Leírás:
Ha a, cc feltétel teljesül (logikailag igaz), ez az utasítás tárolja programszámláló (PC) pillanatnyi tartalmát a külső veremtár tetejére, majd az nn operandust tölti a PC-be, és az így kapott PC tartalom által kijelölt memóriarekeszből egy szubrutin első OP kódja kerül kiolvasásra. (A szubrutin végén az eredeti programhoz való visszatérés egy a veremtár tetejét a PC-be visszahelyező RET utasítással biztosítható.) Ha a cc feltétel nem teljesül (hamis), akkor a programszámláló tartalma a szokásosnak megfelelően lesz inkrementálva, és a program végrehajtása a sorrendben következő utasítással folytatódik. A művelet során először a veremtár mutató (SP) pillanatnyi tartalmának l-el való dekrementálása, majd a PC tartalom magasabb helyértékű byte-jának az így kapott címre való kihelyezése történik meg. Ezután az SP ismét dekrementálódik és a PC tartalom alacsonyabb helyértékű byte-ja töltődik az így kapott címre, azaz a veremtár tetejére.
Megjegyzés: Mivel a CALL cc,nn 3 byte-os utasítás, a programszámláló a tárolási művelet végrehajtása előtt már hárommal inkrementálódik. A cc feltétel nyolc olyan állapot valamelyikeként programozott, amely a jelzőbit regiszter (F regiszter) feltételbitjeinek felel meg. Ez a nyolc állapot a következő táblázat szerint definiálható, amely ugyanakkor a tárgykód megfelelő cc bit mezőjét is specifikálja:

cc
Feltétel
A vizsgált bit
000
NZ nem zérus
Z
001
Z
zérus
Z
010
NC nincs átvitel
C
011
C átvitel
C
100
PO páratlan paritás
P/V
101
PE páros paritás
P/V
110
P pozitív előjel
S
111
M negatív előjel
S

Ha cc teljesül:

M ciklusok: 5 T állapotok: 17 (4, 3, 4, 3, 3) 4 MHz V.i.: 4,25

Ha cc nem teljesül:

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.: 2,50

Példa:
Ha a C bit törölt állapotban van, a programszámláló tartalma 1A47H, a veremtár mutatóé 3002H, a memóriarekeszeké pedig az alábbi:

Rekesz
Tartalom
1A47H
D4H
1A48H
35H
1A49H
21H

és ha az 1A47H-val kezdődő utasítás hozzáférési szekvencia megkezdődik, akkor a D43521H 3 byte-os utasítás kerül a CPU-hoz végrehajtásra. Ennek a mnemonikus ekvivalense:
CALL NC,2135H
Ennek az utasításnak a végrehajtása után a 3001H című memóriarekesz tartalma 1AH, a 3000H című memóriarekesz tartalma 4AH, a, veremtár mutató (SP) tartalma 3000H, és a programszámláló tartalma 2135H lesz, amely a most végrehajtandó szubrutin első OP kódjának címét jelöli ki.


CALL nn
Művelet: (SP-1)PCh' , (SP-2)PCL' , PCnn
Formátum:

OP kód

Operandusok
 
CALL
nn

1
1
0
0
1
0
1
1
CD
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Megjegyzés: A fenti tárgykód két n operandusa közül az első a két byte-os memóriacím alacsonyabb helyértékű byte-ja.

Leírás:
A programszámláló regiszter pillanatnyi tartalmának a külső memória veremtár tetejére történő mentése után az nn operandus töltődik a programszámláló regiszterbe (PC-be), amely így arra a memóriacímre mutat, ahonnan egy szubrutin első OP kódja kerül kiemelésre. (A szubrutin végén az eredeti programhoz való visszatérés egy a veremtár tetejét a PC-be visszahelyező RET utasítással biztosítható.) A mentési művelet során először a veremtár mutató (SP regiszterpár) pillanatnyi tartalmának 1-el való dekrementálása, majd a PC tartalom magasabb helyértékű byte-jának az így kapott címre való kihelyezése történik meg. Ezután az SP ismét dekrementálódik, és a PC tartalom alacsonyabb helyértékű byte-ja töltődik az így kapott címre, azaz a veremtár tetejére.
Megjegyzés: Mivel a CALL nn 3 byte-os utasítás, a programszámláló, a mentési művelet végrehajtása előtt már 3-mal inkrementálódik.

M ciklusok: 5 T állapotok: 17 (4, 3, 4, 3, 3) 4 MHz V.i.: 4,2

Példa:
Abban az esetben, ha a programszámláló tartalma 1A47H, a veremtár mutatóé 3002H, a memóriarekeszeké pedig a következők szerint alakul:

Rekesz
Tartalom
1A47H
CDH
1A48H
35H
1A49H
21H

és ha az 1A47H-val kezdődő utasítás hozzáférési szekvencia megkezdődik, akkor a CD3521H 3 byte-os utasítás kerül a CPU-hoz végrehajtásra. Ennek mnemonikus ekvivalense:
CALL 2135H
Ennek az utasításnak a végrehajtása után a 3001H memóriacím tartalma 1AH, a 3000H című memóriarekesz tartalma 4AH, az SP veremtár mutató (stack pointer) tartalma 3000H, és a programszámláló tartalma 2135H lesz, amely a most végrehajtandó szubrutin első OP kódjának címét jelöli ki.


CCF
Művelet: CYCY
Formátum:

OP kód

Operandusok
 
CCF
-
0
0
1
1
1
1
1
1
3F

Leírás:
A C bit a jelzőbit regiszterben invertálódik.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
az előző átvitel értékét veszi fel
P/V:
változatlan marad
N:
törlődik
C:
1-es állapotba kerül, ha az utasítás végre hajtását megelőzően az átvitel bit (CY) 0 volt; egyébként törlődik.

CP s
Művelet: A - s
Formátum:

OP kód

Operandusok
 
CP
s

Az s operandus r, n, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az ADD utasításoknál. Ezek a különböző lehetséges oP kód-operandus kombinációk a tárgykódban a következők lehetnek:

CP r
1
0
1
1
1
<
r
>
 
CP n
1
1
1
1
1
1
1
0
FE
<
-
-
n
-
-
-
>
 
CP (HL)
1
0
1
1
1
1
1
0
BE
CP (IX+d)
1
1
0
1
1
1
0
1
DD
1
0
1
1
1
1
1
0
BE
<
-
-
d
-
-
-
>
 
CP (IY+d)
1
1
1
1
1
1
0
1
FD
1
0
1
1
1
1
1
0
BE
<
-
-
d
-
-
-
>
 

r a fenti tárgykódban a következőképpen kódolt B, C, D, E, H, L vagy A regisztereket azonosítja:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az s operandus tartalma az akkumulátor tartalmával kerül összehasonlításra. Az összehasonlítás eredményét a jelzőbit regiszter megfelelő bitjének beállítása jelzi.

Utasítás M ciklusok T állapotok 4 MHz V.i.
CP r
1
4
1,00
CP n
2
7 (4, 3)
1,75
CP (HL)
2
7 (4, 3)
1,75
CP (IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
CP (IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, he, túlcsordulás áll fenn; egyébként törlődik
N:
1-es állapotba kerül
C:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik

Példa:
Ha, az akkumulátor 63H-t, a HL regiszterpár 6000H-t, és a 6000H című memóriarekesz 60H-t tartalmaz, a
CP (HL)
utasítás végrehajtásának eredményeként a P/V bit a jelzőbit regiszterben törlődik.


CPD
Művelet: A - (HL) , HLHL-1 , BCBC-1
Formátum:

OP kód

Operandusok
 
CPD
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
1
0
0
1
A9

Leírás:
A HL regiszterpár által megcímzett memóriarekesz tartalma az akkumulátor regiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredményekként egy feltétel bit fog l-es állapotba kerülni. A HL és a byte számláló (BC regiszterpár) tartalma dekrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.: 4,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha A=(HL) ; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha BC-1<>0; egyébként törlődik
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a MTL regiszterpár 1111H-t, az 1111H című memóriarekesz 3BH-t, az akkumulátor 3BH-t, és a byte számláló 0001H-t tartalmaz, a
CPD
utasítás végrehajtása után a byte számláló 0000H-t, a HL regiszterpár 1110H-t fog tartalmazni, a, Z bit a jelzőbit regiszterben 1-es állapotba kerül, és a P/V bit törlődik. Az utasítás az akkumulátor, vagy az 1111H című memóriarekesz tartalmára nem lesz hatással.


CPDR
Művelet: A - (HL) , HLHL-1 , BCBC-1
Formátum:

OP kód

Operandusok
 
CPD
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
1
0
0
1
B9

Leírás:
A HL regiszterpár által megcímzett memóriarekesz tartalma az akkumulátor regiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredményeként egy feltétel bit fog l-es állapotba kerülni. A HL és a BC (Byte számláló) regiszter dekrementálódik. Ha a dekrementálás eredményeként a BC tartalma 0-vá válik, vagy ha A=(HL), az utasítás befejeződik. Ha BC tartalma nem zerus és A<>(HL), a programszámláló 2-vel dekrementálódik, és az utasítás megismétlődik.
Megjegyzés: ha BC tartalma az utasítás végrehajtása előtt már 0-ra van beállítva, az utasítás 64Kbyte-on keresztül fog megismétlődni, feltéve, hogy az egymást követő összehasonlítások során nem történt megegyezés. Minden memóriához fordulást követően két frissítési ciklus (refresh cycle) zajlik le, és ilyenkor a megszakítások (interruptok) is érvényesülnek.

BC<>0 és A<>(HL) esetén:

M ciklusok: 5 T állapotok: 21 (4, 4, 3, 5, 5) 4 MHz V.i.: 5,25

BC=0 vagy A=(HL) esetén:

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.: 4,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha A=(HL) ; egyébként törlődik
H:
1-es állapotba kerül, ha, alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha BC-1<>0; egyébként törlődik
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a HL regiszterpár 1118H-t, az akkumulátor F3H-t, és a byte számláló 0007H-t tartalmaz, a memóriarekeszek tartalma pedig az alábbiak szerint alakul:

Rekesz
Tartalom
1118H
52H
1117H
00H
1116H
F3H

akkor a
CPDR
utasítás végrehajtása után a HL regiszterpár tartalma 1115H, a byte számláló tartalma 0004H lesz, a P/V bit l-es állapotba kerül, és a Z bit is 1-es állapotba kerül.


CPI
Művelet: A - (HL) , HLHL+1 , BCBC-1
Formátum:

OP kód

Operandusok
 
CPI
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
1
0
0
1
A1

Leírás:
A HL regiszterpár által megcímzett memóriarekesz tartalma az akkumulátor regiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredményeként egy feltétel bit fog 1-es állapotba kerülni. Azután a HL tartalma inkrementálódik, és a byte számláló (BC regiszterpár) tartalma dekrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.: 4,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha A=(HL) ; egyébként törlődik
H:
1-es állapotba kerül, ha, alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha BC-1<>0; egyébként törlődik
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a HL regiszterpár 1111H-t tartalmaz, az 1111H című memóriarekesz 3BH-t, az akkumulátor 3FBH-t, és a byte számláló 0001H-t, a
CPI
Végrehajtásának eredményeként a, byte számláló 0000H-t, a HL regiszterpár 1112H-t fog tartalmazni, a Z bit 1-es állapotba kerül, és a P/V bit törlődik. Az utasítás az akkumulátor, vagy az 1111H című memóriarekesz tartalmára nem lesz hatással.


CPIR
Művelet: A - (HL) , HLHL+1 , BCBC-1
Formátum:

OP kód

Operandusok
 
CPIR
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
0
0
0
1
B1

Leírás:
A HL regiszterpár által megcímzett memóriarekesz tartalma az akkumulátor regiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredményeként egy feltétel bit fog 1-es állapotba kerülni. A HL inkrementálódik, és a byte számláló (BC regiszterpár) tartalma dekrementálódik. Ha a dekrementálás eredményeként a BC tartalma 0-vá válik, vagy ha A=(HL), az utasítás befejeződik. Ha BC tartalma nem zérus, és A<>(HL), a programszámláló 2-vel dekrementálódik, és az utasítás megismétlődik. Megjegyezzük, hogy akkor, ha BC tartalma az utasítás végrehajtása előtt már 0-ra van beállítva, az utasítás 64Kbyte-on keresztül fog megismétlődni, feltéve, hogy az egymást követő összehasonlítások során nem történt megegyezés. Minden egyes memóriához fordulást követően két frissítési ciklus zajlik le, és ilyenkor a megszakítások is érvényesülnek.

BC<>0 és A<>(HL) esetén:

M ciklusok: 5 T állapotok: 21 (4, 4, 3, 5, 5) 4 MHz V.i.: 5,25

BC=0 vagy A=(HL) esetén:

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.: 4,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha A=(HL) ; egyébként törlődik
H:
1-es állapotba kerül, ha, alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha BC-1<>0; egyébként törlődik
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a HL regiszterpár 1111H-t, az akkumulátor F3H-t, a byte számláló 0007H-t tartalmaz, és a memóriarekeszek tartalma az alábbiak szerint alakul:

Rekesz
Tartalom
1111H
52H
1112H
00H
1113H
F3H

ekkor a
CPIR
végrehajtásának eredményeként a HL regiszterpár tartalma 1114H, a byte számláló tartalma 0004H lesz, a P/V bit 1-es állapotba kerül, és a Z bit is 1-es állapotba kerül.


CPL
Művelet: AA
Formátum:

OP kód

Operandusok
 
CPL
-
0
0
1
0
1
1
1
1
2F

Leírás:
Az akkumulátor (A regiszter) tartalma invertálódik (1-es komplemens képződik).

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
1-es állapotba kerül
P/V:
változatlan marad
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha az akkumulátor tartalma 1011 0100, a
CPL
végrehajtásának eredményeként az akkumulátor tartalma 0100 1011 lesz.


DAA
Művelet: az akkumulátor decimális korrekciója
Formátum:

OP kód

Operandusok
 
DAA
-
0
0
1
0
0
1
1
1
27

Leírás:
Az utasítás BCD összeadáskor és kivonáskor szükségessé váló akkumulátor-tartalom korrekciót végzi. Összeadás (ADD, ADC, INC) vagy kivonás (SUB, SBC, DEC, NEG) esetén az utasítás által megvalósított műveleteket az alábbi táblázat mutatja:

Művelet
C tartalom DAA előtt
Magasabb helyértékű szám
(7-4 bit) HEXA értéke
H tartalom DAA előtt
Alacsonyabb helyértékű szám
(3-0 bit) HEXA értéke
Byte-hoz hozzáadott szám
C tartalom DAA után
ADD
ADC
INC
0
0-9
0
0-9
00
0
0
0-8
0
A-F
06
0
0
0-9
1
0-3
06
0
0
A-F
0
0-9
60
1
0
9-F
0
A-F
66
1
0
A-F
1
0-3
66
1
1
0-2
0
0-9
60
1
1
0-2
0
A-F
66
1
1
0-3
1
0-3
66
1
SUB
0
0-9
0
0-9
00
0
SBC
0
0-8
1
6-F
FA
0
DEC
1
7-F
0
0-9
A0
1
NEG
1
6-F
1
6-F
9A
1

 

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az akkumulátor tartalmának legmagasabb helyértékű bitje 1 a művelet után; egyébként törlődik
Z:
1-es állapotba kerül, ha a művelet után az akkumulátor tartalma zérus; egyébként törlődik
H:
lásd a táblázatot
P/V:
1-es állapotba kerül, ha a művelet után az akkumulátor páros paritású; egyébként törlődik
N:
változatlan marad
C:
lásd a táblázatot

Példa:
Ha a 15 (BCD) és 27 (BCD) értékeket kell összeadni, az elemi decimális aritmetika a, következő eredményt adja:

 
15
+
27
 
42

Ha viszont a megfelelő bináris reprezentációk a normál bináris aritmetika szerint kerülnek összeadásra az akkumulátorban, akkor

 
0001 0101
 
+
0010 0111
 
 
0011 1100
3C

az eredmény nem egyértelmű. A DAA utasítás ezt az eredményt úgy korrigálja, hogy a helyes BCD reprezentációt kapjuk:

 
0001 0101
 
+
0010 0111
 
 
0100 0010
42

DEC m
Művelet: mm-1
Formátum:

OP kód

Operandusok
 
DEC
m

Az m operandus r, (HL) , (IX+d) vagy (IY+d) bármelyike, amint azt az ezzel az utasítással analóg INC utasításoknál meghatároztuk. Ezek a különböző lehetséges 0P kód operandus-kombinációk a tárgykódban a következők:

DEC r
0
0
<
r
>
1
0
1
 
DEC (HL)
0
0
1
1
0
1
0
1
35
DEC (IX+d)
1
1
0
1
1
1
0
1
DD
0
0
1
1
0
1
0
1
35
<
-
-
d
-
-
-
>
 
DEC (IY+d)
1
1
1
1
1
1
0
1
FD
0
0
1
1
0
1
0
1
35
<
-
-
d
-
-
-
>
 

r azonosítja a B,C,D,E,H,L vagy A regisztereket, melyek a következők a fenti tárgykócban:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az m operandus által specifikált byte dekrementálódik.

Utasítás M ciklusok T állapotok 4 MHz V.i.
DEC r
1
4
1,00
DEC (HL)
3
11 (4, 4, 3)
2,75
DEC (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
DEC (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha, az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha a művelet előtt m 80H volt; egyébként törlődik
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a D regiszterben lévő byte 2AH, a
DEC D
végrehajtásának eredményeként a D regiszter tartalma 29H lesz.


DEC IX
Művelet: IXIX-1
Formátum:

OP kód

Operandusok
 
DEC
IX
1
1
0
1
1
1
0
1
DD
0
0
1
0
1
0
1
1
2B

Leírás:
Az IX index regiszter tartalma dekrementálódik.

M ciklusok: 2 T állapotok: 10 (4, 6) 4 MHz V.i.: 2,50

Példa:
Ha az IX index regiszter tartalma 2006H, a
DEC IX
végrehajtásának eredményeként az IX index regiszter tartalma 2005H lesz.


DEC IY
Művelet: IYIY-1
Formátum:

OP kód

Operandusok
 
DEC
IY
1
1
1
1
1
1
0
1
FD
0
0
1
0
1
0
1
1
2B

Leírás:
Az IY index regiszter tartalma dekrementálódik.

M ciklusok: 2 T állapotok: 10 (4, 6) 4 MHz V.i.: 2,50

Példa:
Ha az IY index regiszter tartalma 7649H, a
DEC IY
végrehajtásának eredményeként az IX index regiszter tartalma 7648H lesz.


DEC ss
Művelet: ssss-1
Formátum:

OP kód

Operandusok
 
DEC
ss
0
0
s
s
1
0
1
1

Leírás:
Az ss regiszterpár (a BC, DE, HL vagy SP regiszterpárok bármelyike) tartalma dekrementálódik. Az ss operandus tárgykódban a következő:

Regiszterpár
rr
BC
00
DE
01
HL
10
SP
11

 

M ciklusok: 1 T állapotok: 6 4 MHz V.i.: 1,50

Példa:
Ha a HL regiszterpár tartalma 1001H, a
DEC HL
végrehajtásának eredményeként a HL tartalma 1000H lesz.


DI
Művelet: IFF0
Formátum:

OP kód

Operandusok
 
DI
-
1
1
1
1
0
0
1
1
F3

Leírás:
A megszakítás engedélyező flip-flopok (IFF1 és IFF2) törlésével a DI tiltja a, maszkolható megszakítások érvényre jutását. Megjegyezzük, hogy az utasítás már végrehajtása alatt tiltja a maszkolható megszakításokat.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

Példa:
Amikor a CPU a
DI
utasítást hajtja végre, a maszkolható megszakítás mindaddig letiltásra kerül, amíg azt egy később végrehajtott EI utasítás újra nem engedélyezi. A CPU tehát a, normál megszakítás kérésre (Interrupt Request - INT) ebben az esetben nem reagál.


DJNZ e
Művelet: relatív ugrás (jump) és dekrementálás
Formátum:

OP kód

Operandusok
 
DJNZ
e
0
0
0
1
0
0
0
0
10
<
-
-
e-2
-
-
-
>
 

Leírás:
Ez az utasítás a feltételes ugró utasításokhoz hasonló, az eltérés csak az, hogy a vezérlés átadás itt a B regiszter tartalmától függ. A B regiszter tartalma az utasítás végrehajtása során dekrementálódik, és ha értéke zérustól eltérő marad, akkor az e címkiegészítés a programszámláló (PC) tartalmához adódik. Azt a memóriarekeszt, ahonnan a, soron következő utasítás lesz kiemelve, a programszámláló új tartalma határozza meg. Az ugrás hossza az utasítás OP kódját tartalmazó memóriarekesz címétől értendő, és tartománya -126...+129 byte lehet. Az assembler kiszámítja az e címkiegészítés értékét, és ezt automatikusan korrigálja a kétszer inkrementált PC miatt 2-vel. (A PC tartalomnak ez a 2-vel történő növelése az utasítás 2 byte-os hosszának következménye). Ha a B regiszter dekremetálásának az eredménye zérus, akkor a, következő végrehajtandó utasítás a DJNZ-t tartalmazó memóriarekeszt követő rekeszből lesz kiemelve.

Ha B<>0:

M ciklusok: 3 T állapotok: 13 (5, 3, 5) 4 MHz V.i.: 3,25

Ha B=0:

M ciklusok: 2 T állapotok: 8 (5, 3) 4 MHz V.i.: 2,00

Példa:
A DJNZ utasítás használatát egy tipikus szoftver rutinon keresztül mutatjuk be. A rutin max. 80 byte-ból álló sort tölt át egy input pufferből (INBUF) egy output pufferbe (OUTBUF). A byte-ok áttöltését mindaddig folytatja, amíg egy CR kódot nem talál, vagy amíg a 80 byte áttöltése be nem fejeződik.




LOOP:






KESZ:
LD B,80
LD HL,INBUF
LD DE,OUTBUF
LD A,(HL)
LD (DE),A
CP 0DH
JR Z,KESZ
INC HL
INC DE
DJNZ LOOP
; a számláló előkészítése
; a pointerek előkészítése

; a következő byte megszerzése az input pufferből
; tárolás az output pufferben
; CR volt?
; Igen, vége
; nem, apointer inkrementálás

; visszaugrás, ha még 80 byte
; áttöltése nem történt meg

EI
Művelet: IFF1
Formátum:

OP kód

Operandusok
 
EI
-
1
1
1
1
1
0
1
1
FB

Leírás:
Az EI a maszkolható megszakításokat engedélyezi, azáltal, hogy a megszakítás engedélyező flip-flopokat (IFF1 és IFF2) 1-es állapotba állítja. Megjegyezzük, hogy az utasítás végrehajtása során a maszkolható megszakításokat tiltja.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

Példa:
Ha a CPU befelezte az
EI
utasítás végrehajtását, a maszkolható megszakítás engedélyezett, és a CPU képes a megszpkítás kérelem (Interrupt Request - INT) elfogadására.


EX (SP),HL
Művelet: H(SP+1), L(SP)
Formátum:

OP kód

Operandusok
 
EX
(SP),HL
1
1
1
0
0
0
1
1
E3

Leírás:
A HL regiszterpárban lévő kisebb helyértékű byte az SP regiszterpár tartalma által meghatározott memóriacímen lévő byte tartalmával cserélődik ki, a HL regiszterpár magasabb helyértékű byte-ja pedig a következő memóriacímen (SP+1) lévő byta-tal cserélődik ki.

M ciklusok: 5 T állapotok: 19 (4, 3, 4, 3, 5) 4 MHz V.i.: 4,75

Példa:
Ha, a HL regiszterpár 7012H-t, az SP regiszterpár 8856H-t tartalmaz, a 8856H címtű memóriarekeszben lévő byte 11H és a 8857H című memóriarekeszben lévő byte 22H, akkor az
EX (SP) , HL
Utasítás végrehajtásának eredményeként a HL regiszterpár tartalma. 2211H lesz, a 8856H című memóriarekeszben lévő byte 12H, a. 8857H című memóriarekeszben lévő byte 70H lesz, és az SP regiszterpár 8856H-t fog tartalmazni.


EX (SP),IX
Művelet: IXH(SP+1), IXL(SP)
Formátum:

OP kód

Operandusok
 
EX
(SP),IX
1
1
0
1
1
1
0
1
DD
1
1
1
0
0
0
1
1
E3

Leírás:
Az IX index regiszterben lévő kisebb helyértékű byte az SP regiszterpár tartalma által meghatározott memóriacímen lévő byte tartalmával cserélődik ki, az IX regiszterpár magasabb helyértékű byte-ja pedig a következő memóriacímen (SP+1) lévő byta-tal cserélődik ki.

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 4, 3, 5) 4 MHz V.i.: 5,75

Példa:
Ha az IX index regiszter 3988H-t, az SP regiszterpár 0100H-t tartalmaz, a 0100H című memóriarekeszben lévő byte 90H és a 0101H című memóriarekeszben lévő byte 48H, akkor az
EX (SP),IX
utasítás végrehajtásának eredményeként az IX regiszterpár tartalma számértékben 4890H lesz, a 0100H című memóriarekeszben lévő byte 88H, a 0101H című memóriarekeszben lévő byte 39H lesz, és az SP regiszter 0100H-t fog tartalmazni.


EX SP,(IY)
Művelet: IYH(SP+1), IYL(SP)
Formátum:

OP kód

Operandusok
 
EX
(SP),IY
1
1
1
1
1
1
0
1
FD
1
1
1
0
0
0
1
1
E3

Leírás:
Az IY index regiszterben lévő kisebb helyértékű byte az SP regiszterpár tartalma által meghatározott memóriacímen lévő byte tartalmával cserélődik ki, az IY regiszterpár magasabb helyértékű byte-ja pedig a következő memóriacímen (SP+1) lévő byta-tal cserélődik ki.

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 4, 3, 5) 4 MHz V.i.: 5,75

Példa:
Ha az IY index regiszter 3988H-t, az SP regiszterpár 0100H-t tartalmaz, a 0100H című memóriarekeszben lévő byte 90H és a 0101H című memóriarekeszben lévő byte 48H, akkor az
EX (SP),IY
utasítás végrehajtásának eredményeként az IY regiszterpár tartalma, számértékben 4890H lesz, a 0100H című memóriarekeszben lévő byte 88H, a 0101H című memóriarekeszben lévő byte 39H lesz, és az SP regiszter 0100H-t fog tartalmazni.


EX AF,AF'
Művelet: AFAF'
Formátum:

OP kód

Operandusok
 
EX
AF,AF'
0
0
0
0
1
0
0
0
08

Leírás:
Az AF és AF' 2 byte-os regiszterpárok tartalma felcserélődik. (Megjegyzés: az AF' regiszterpár az A' és F' regiszterekből áll.)

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

Példa:
Ha az AF regiszterpár tartalma számértékben 9900H és az AF' regiszterpár tartalma, számértékben 5944H, az
EX AF,AF'
utasítás végrehajtásának eredményeként az AF tartalma 5944H, és az AF' tartalma 9900H lesz.


EX DE,HL
Művelet: DEHL
Formátum:

OP kód

Operandusok
 
EX
DE,HL
1
1
1
0
1
0
1
1
EB

Leírás:
A DE és HL 2 byte-os regiszterpárok tartalma felcserélődik.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

Példa:
Ha a DE regiszterpár tartalma számértékben 2822H és a HL regiszterpár tartalma számértékben 499AH, akkor az
EX DE,HL
utasítás végrehajtásának eredményeként a DE regiszterpár tartalma 499AH és a HL regiszterpár tartalma 2822H lesz.


EXX
Művelet: (BC)(BC'), (DE)(DE'), (HL)(HL')
Formátum:

OP kód

Operandusok
 
EXX
-
1
1
0
1
1
0
0
1
D9

Leírás:
A BC, DE és HL regiszterpárokban lévő minden egyes 2 byte-os érték rendre felcserélődik a BC', DE' és HL' regiszterpárokban lévő 2 byte-os értékkel.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

Példa:
Ha a BC, DE és HL regiszterpárok tartalma számértékben 445AH, 3DA2H és 8859H, és a BC', DE' és HL' regiszterpárok tartalma, 0988H, 9300H és 00E7H, az
EXX
utasítás végrehajtásának eredményeként a regiszterpárok tartalma a következőképpen alakul: BC: 0988H; DE: 9300H; HL: 00E7H; BC': 445AH; DE': 3DA2H; és HL': 8859H.


HALT
Művelet: CPU várakozás (HALT)
Formátum:

OP kód

Operandusok
 
HALT
-
0
1
1
1
0
1
1
0
76

Leírás:
A HALT utasítás a következő megszakítás vagy törlési utasítás detektálásáig felfüggeszti a CPU működését. A "halt" állapotban a processzor memória frissítő logika működtetéséhez NOP utasításokat hajt végre.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.: 1,00

IM 0
Művelet: Interrupt Mode 0 beállítása
Formátum:

OP kód

Operandusok
 
IM
0
1
1
1
0
1
1
0
1
ED
0
1
0
0
0
1
1
0
46

Leírás:
Az IM 0 utasítás a 0-s megszakítási módot (mode 0) állítja be. Ebben az üzemmódban a megszakítást kérő eszköz a megszakítás elfogadását követően egy tetszőleges utasítás helyezhet az adatbuszra, hogy azt a CPU végrehajtsa.

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.: 2,00

IM 1
Művelet: Interrupt Mode 1 beállítása
Formátum:

OP kód

Operandusok
 
IM
1
1
1
1
0
1
1
0
1
ED
0
1
0
1
0
1
1
0
56

Leírás:
Az IM 0 utasítás a 0-s megszakítási módot (mode 0) állítja be. Ebben az üzemmódban a processzor a megszakítási kérelemre egy 0038H-as rekeszre irányuló "Restart" végrehajtásával válaszol.

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.: 2,00

IM 2
Művelet: Interrupt Mode 2 beállítása
Formátum:

OP kód

Operandusok
 
IM
2
1
1
1
0
1
1
0
1
ED
0
1
0
1
0
1
1
0
5E

Leírás:
Az IM 2 utasítás a 2-es megszakítási üzemmódot (mode 2) állítja be. Ez az üzemmód egy tetszőleges memóriarekeszre irányuló "Indirekt Call" végrehajtását teszi lehetővé. Ebben az üzemmódban a CPU egy 16 bites memóriacímet állít össze. A cím felső 8 bitjét az I "Interrupt Vector Register" tartalmazza, míg az alacsonyabb helyértékű 8 bitet a megszakítás elfogadásakor a megszakítást kérő eszköz helyezi az adatbuszra.

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.: 2,00

IN A,(n)
Művelet: A(n)
Formátum:

OP kód

Operandusok
 
IN
A,(n)
1
1
0
1
1
0
1
1
DB
<
-
-
n
-
-
-
>
 

Leírás:
A végrehajtás során az utasításnak a címbusz alsó felére (A0-tól A7-ig) helyezett n operandusa a 256 lehetséges periféria regiszter (I/O port) egyikét választja ki. Ugyanakkor az akkumulátor regiszter tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. A kiválasztott periféria regiszter tartalma az adatbuszra kerül és a CPU akkumulátor regiszterébe (A regiszter) íródik.

M ciklusok: 3 T állapotok: 11 (4, 3, 4) 4 MHz V.i.: 2,75

Példa:
Ha az akkumulátor tartalma 23H, és a 01H című periféria regiszterben 7BH van jelen, akkor az
IN A ,(01H)
utasítás végrehajtása után az akkumulátor 7BH-t fog tartalmazni.


IN r,(C)
Művelet: r(C)
Formátum:

OP kód

Operandusok
 
IN
r,(C)
1
1
1
0
1
1
0
1
EB
0
1
<
n
>
0
0
0
 

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanakkor a B regiszter tartalma a címbusz felső 8 bitjén (A8-tól A15-ig) jelenik meg. A C regiszter tartalma által megcímzett periféria regiszterben lévő byte az adatbuszra kerül, majd a CPU-nak az utasítás r mezője által meghatározott regiszterébe íródik. Az r bármelyik CPU regisztert kijelölheti. Az egyes regiszterekhez hozzárendelt 3 bites r mezőket az alábbi táblázat mutatja. Az állapot bitek a beolvasott adat tartalmának megfelelően állnak be:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

 

M ciklusok: 3 T állapotok: 12 (4, 4, 4) 4 MHz V.i.:3,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha a beolvasott adat negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha a beolvasott adat nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül, páros paritás esetén; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a C regiszter tartalma. 07H, a B regiszter tartalma 10H, és a 07H című periféria regiszterben 7BH van jelen, akkor az
IN D,(C)
végrehajtásának eredményeként a D regiszter tartalma 7BH lesz, míg a B és C regiszterek tartalma változatlan marad.


INC (HL)
Művelet: (HL)(HL)+1
Formátum:

OP kód

Operandusok
 
INC
(HL)
0
0
1
1
0
1
0
0
34

Leírás:
A HL regiszter tartalma által megcímzett memóriarekesz tartalma inkrementálódik.

M ciklusok: 3 T állapotok: 11 (4, 4, 3) 4 MHz V.i.:2,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha a beolvasott adat negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha a beolvasott adat nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba, kerül, ha a működés előtt HL 7FH volt; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a HL regiszterpár tartalma 3434H, és a 3434H című memóriarekeszben lévő byte 82H, akkor az
INC (HL)
végrehajtásának eredményeként a 3434H című memóriarekesz 83H-t fog tartalmazni.


INC IX
Művelet: IXIX+1
Formátum:

OP kód

Operandusok
 
INC
IX
1
1
0
1
1
1
0
1
DD
0
0
1
0
0
0
1
1
23

Leírás:
Az IX regiszter tartalma inkrementálódik.

M ciklusok: 2 T állapotok: 10 (4, 6) 4 MHz V.i.:2,5

Példa:
Ha az IX index regiszter 3300H egész számot tartalmaz, a
INC IX
utasítás végrehajtásának eredményeként az IX index regiszter tartalma 3301H lesz.


INC (IX+d)
Művelet: (IX+d)(IX+d)+1
Formátum:

OP kód

Operandusok
 
INC
(IX+d)
1
1
0
1
1
1
0
1
DD
0
0
1
0
0
0
1
1
23
<
-
-
d
-
-
-
>
 

Leírás:
Az IX index regiszter (IX regiszterpár) tartalmához hozzáadódik az utasítás d mezőjében szeplő 2-es komplemensű egész számként ábrázolt címkiegészítés. Az így kapott memóriacím által meghatározott rekesz tartalma inkrementálódik.

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 5, 4, 3) 4 MHz V.i.:5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha a beolvasott adat negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha, a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha, a működés előtt (IX+d) 7FH volt; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha, az IX index regiszter tartalma 2020H, és a 2030H című memóriarekeszben lévő byte 34H, az
INC (IX+10H)
utasítás végrehajtásának eredményeként a 2030H című memóriarekesz tartalma 35H lesz.


INC IY
Művelet: IYIY+1
Formátum:

OP kód

Operandusok
 
INC
IY
1
1
1
1
1
1
0
1
FD
0
0
1
0
0
0
1
1
23

Leírás:
Az IY regiszter tartalma inkrementálódik.

M ciklusok: 2 T állapotok: 10 (4, 6) 4 MHz V.i.:2,5

Példa:
Ha az IY index regiszter tartalma 2977H, akkor az
INC IY
utasítás végrehajtásának eredményeként az IY index regiszter tartalma 2978H lesz.


INC (IY+d)
Művelet: (IY+d)(IY+d)+1
Formátum:

OP kód

Operandusok
 
INC
(IY+d)
1
1
1
1
1
1
0
1
FD
0
0
1
1
0
1
0
0
34
<
-
-
d
-
-
-
>
 

Leírás:
Az IY index regiszter (IY regiszterpár) tartalmához hozzáadódik az utasítás d mezőjében szeplő 2-es komplemensű egész számként ábrázolt címkiegészítés. Az így kapott memóriacím által meghatározott rekesz tartalma inkrementálódik.

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 5, 4, 3) 4 MHz V.i.:5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha a beolvasott adat negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha, az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha, a működés előtt (IY+d) 7FH volt; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha, az IY index regiszter tartalma 2020H, és a 2030H című memóriarekeszben lévő byte 34H, az
INC (IY+10H)
utasítás végrehajtásának eredményeként a 2030H című memóriarekesz tartalma 35H lesz.


INC r
Művelet: rr+1
Formátum:

OP kód

Operandusok
 
INC
r
0
0
<
r
>
1
0
0

Leírás:
Az r regiszter inkrementálódik, r azonosítja az A,B,C,D,E,H vagy L regiszterek bármelyikét, amely tárgykódban a következő lehet:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha a beolvasott adat negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha, az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha a 3-as biten átvitel keletkezik; egyébként törlődik
P/V:
1-es állapotba kerül, ha, a működés előtt r 7FH volt; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a D regiszter tartalma 28H, az
INC D
utasítás végrehajtásának eredményeként a D regiszter tartalma 29H lesz.


INC ss
Művelet: ssss+1
Formátum:

OP kód

Operandusok
 
INC
ss
0
0
s
s
0
0
1
1

Leírás:
Az ss regiszterpár (a BC, DE, HL vagy SP regiszterpárok bármelyike) tartalma inkrementálódik. Az ss operandus tárgykódban a következő lehet:

Regiszterpár
ss
BC
00
DE
01
HL
10
SP
11

 

M ciklusok: 1 T állapotok: 6 4 MHz V.i.:1,50

Példa:
Ha a HL regiszterpár 1000H-t tartalmaz, az
INC HL
utasítás végrehajtásának eredményeként a HL 1001H-t fog tartalmazni.


IND
Művelet: (HL)(C), BB-1, HLHL-1
Formátum:

OP kód

Operandusok
 
INC
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
1
0
1
0
AA

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. A megcímzett periféria regiszter tartalma az adatbuszra kerül, majd a CPU-ba íródik. Ugyanekkor a HL regiszterpár tartalma a címbuszra kerül, és a periféria regiszterből beolvasott byte az ilyen módon megcímzett memóriarekeszbe íródik. Végül a byte számláló, és a HL regiszterpár dekrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha B-1=0; egyébként törlődik
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07H, a B regiszter tartalma 10H, a HL regiszterpár tartalma, 1000H, és a 07H című periféria regiszterben 7BH van jelen, akkor az
IND
utasítás végrehajtásának eredményeként az 1000H című memóriarekesz 7BH-t, a HL regiszterpár 0FFFH-t, és a B regiszter 0FH-t fog tartalmazni.


INDR
Művelet: (HL)(C), BB-1, HLHL-1
Formátum:

OP kód

Operandusok
 
INDR
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
1
0
1
0
BA

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. A megcímzett periféria regiszter tartalma az adatbuszra kerül, majd a CPU-ba íródik. Ugyanekkor a HL regiszterpár tartalma a címbuszra kerül, és a periféria regiszterből beolvasott byte az ilyen módon megcímzett memóriarekeszbe íródik. Végül a byte számláló, és a HL regiszterpár dekrementálódik. Ha a B (byte számláló) dekrementálása zérust eredményez, az utasítás befejeződik. Ha a dekrementálás eredménye nem zérus, akkor a programszámláló tartalma 2-vel dekrementálódik, és az utasítás végrehajtása ismétlődik. Megjegyezzük, hogy ha az utasítás végrehajtását megelőzően B tartalma 0-ra lett beállítva, 256 byte adat olvasódik be. Minden adatbeolvasást követően két memória frissítési ciklus zajlik le, és ugyanekkor programmegszakítási kérelmek is érvényre juthatnak.

Ha B<>0:

M ciklusok: 5 T állapotok: 21 (4, 5, 3, 4, 5) 4 MHz V.i.:5,25

Ha B=0:

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07H, a B regiszter tartalma 03H, a HL regiszterpár tartalma 1000H, és a következő byte-sorozat áll rendelkezésre a 07H című periféria regiszterben:

51H
A9H
03H

akkor az
INDR
utasítás végrehajtásának eredményeként a HL regiszterpár 0FFDH-t, a B regiszter zérust fog tartalmazni, és a memóriarekeszek tartalma a következőképpen alakul:

Rekesz
Tartalom
0FFEH
03H
0FFFH
A9H
1000H
51H

INI
Művelet: (HL)(C), BB-1, HLHL+1
Formátum:

OP kód

Operandusok
 
INI
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
0
0
1
0
A2

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. A megcímzett periféria regiszter tartalma az adatbuszra kerül, majd a CPU-ba íródik. Ugyanekkor a HL regiszterpár tartalma a címbuszra kerül, és a periféria regiszterből beolvasott byte az ilyen módon megcímzett memóriarekeszbe íródik. Végül a byte számláló dekrementálódik, és a HL regiszterpár inkrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, B-1=0; egyébként törlődik
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07H, a B regiszter tartalma 10H, a HL regiszterpár tartalma 1000H, és a 07H című periféria regiszterben 7 BH van jelen, akkor az
INI
utasítás végrehajtásának eredményeként az 1000H című memóriarekesz 7BH-t, a HL regiszterpár 1001H-t, és a B regiszter 0FH-t fog tartalmazni.


INIR
Művelet: (HL)(C), BB-1, HLHL+1
Formátum:

OP kód

Operandusok
 
INIR
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
0
0
1
0
B2

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. A megcímzett periféria regiszter tartalma az adatbuszra kerül, majd a CPU-ba íródik. Ugyanekkor a HL regiszterpár tartalma a címbuszra kerül, és a periféria regiszterből beolvasott byte az ilyen módon megcímzett memóriarekeszbe íródik. Azután a HL regiszterpár inkrementálódik, a byte számláló pedig dekrementálódik. Ha a B (byte számláló) dekrementálása zérust eredményez, az utasítás befejeződik. Ha a dekrementálás eredménye nem zérus, akkor a programszámláló tartalma 2-vel dekrementálódik, és az utasítás végrehajtása ismétlődik. Megjegyezzük, hogy ha az utasítás végrehajtását megelőzően B tartalma 0-ra lett beállítva, 256 byte adat olvasódik be. Minden adatbeolvasást követően két memória frissítési ciklus zajlik le, és ugyanekkor programmegszakítási kérelmek is érvényre juthatnak.

Ha B<>0:

M ciklusok: 5 T állapotok: 21 (4, 5, 3, 4, 5) 4 MHz V.i.:5,25

Ha B=0:

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07H, a B regiszter tartalma 03H, a HL regiszterpár tartalma 1000H, és a következő byte-sorozat áll rendelkezésre a 07H című periféria regiszterben:

51H
A9H
03H

akkor az
INIR
utasítás végrehajtásának eredményeként a HL regiszterpár 1003H-t, a B regiszter zérust fog tartalmazni, és a memóriarekeszek tartalma a következőképpen alakul:

Rekesz
Tartalom
1000H
51H
1001H
A9H
1002H
03H

JP (HL)
Művelet: PCHL
Formátum:

OP kód

Operandusok
 
JP
(HL)
1
1
1
0
1
0
0
1
E9

Leírás:
A programszámláló regiszter (PC regiszterpár) a HL regiszterpár tartalmával töltődik fel. A soron következő utasítás a programszámláló új tartalma által meghatározott memóriarekeszből lesz kiolvasva.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

Ha a programszámláló tartalma 1000H, és a HL regiszterpár tartalma 4800H, akkor a
JP (HL)
utasítás végrehajtásknak eredményeként a programszámláló tartalma 4800H lesz.


JP (IX)
Művelet: PCIX
Formátum:

OP kód

Operandusok
 
JP
(IX)
1
1
0
1
1
1
0
1
DD
1
1
1
0
1
0
0
1
E9

Leírás:
A programszámláló (PC regiszterpár) az IX regiszterpár (IX index regiszter) tartalmával töltődik fel. A soron következő utasítás a programszámláló új tartalma által meghatározott memóriarekeszekből lesz kiolvasva.

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.:2,00

Példa:
Ha a programszámláló tartalma 1000H, és az IX regiszterpár tartalma 4800H, akkor a
JP (IX)
utasítás végrehajtásának eredményeként a programszámláló tartalma 4800H lesz.


JP (IY)
Művelet: PCIY
Formátum:

OP kód

Operandusok
 
JP
(IY)
1
1
1
1
1
1
0
1
FD
1
1
1
0
1
0
0
1
E9

Leírás:
A programszámláló (PC regiszterpár) az IY regiszterpár (IY index regiszter) tartalmával töltődik fel. A soron következő utasítás a programszámláló új tartalma által meghatározott memóriarekeszekből lesz kiolvasva.

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.:2,00

Példa:
Ha a programszámláló tartalma 1000H, és az IY regiszterpár tartalma 4800H, akkor a
JP (IY)
utasítás végrehajtásának eredményeként a programszámláló tartalma 4800H lesz.


JP cc,nn
Művelet: Ha cc igaz, PCnn
Formátum:

OP kód

Operandusok
 
JP
cc,nn
1
1
<
cc
>
0
1
0
<
-
-
n
-
-
-
>
<
-
-
n
-
-
-
>

Megjegyzés: A fenti assemblerrel lefordított tárgykódban elsőként szereplő n operandus egy 2 byte-os memóriacím alacsonyabb helyértékű byte-ja.

Leírás:
Ha a cc feltétel teljesül, az utasítás az nn operandust a PC (programszámláló) regiszterbe tölti, és a program az nn címmel kezdődő utasítás végrehajtásával folytatódik. Ha a cc feltétel nem teljesül, akkor a programszámláló a normál módon inkrementálódik, és a program a soron következő utasítás végrehajtásával folytatódik. A cc feltétel programozása a jelzőbit regiszter (F regiszter) valamelyik bitjének kijelölésével történhet. Az ilyen módon kijelölhető 8 feltételt tárgykódban az alábbi táblázat definiálja:

cc
Feltétel
aktuális bit
000
001
010
011
100
101
110
111

NZ
Z
NC
C
PO
PE
P
M

nem zérus
zérus
nincs átvitel
átvitel
páratlan paritás
páros paritás
pozitív előjel
negatív előjel
Z
Z
C
C
P/V
P/V
S
S

 

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,50

Példa:
Ha az átvitel bit (a C bit a jelzőbit regiszterben) l-es állapotban van, és a l520H című memóriarekesz tartalma 03H, akkor a
JP C,1520H
végrehajtásának eredményeként a programszámláló 1520H-t fog tartalmazni, és a következő gépi ciklusban a CPU az 1520H-s címen elhelyezett 03H-s byte-ot fogja kiemelni.


JP nn
Művelet: PCnn
Formátum:

OP kód

Operandusok
 
JP
nn
1
1
0
0
0
0
1
1
C3
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Megjegyzés: A fenti assemblerrel lefordított tárgykódban elsőként szereplő n operandus egy 2 byte-os memóriacím alacsonyabb helyértékű byte-ja.

Leírás:
Feltétel nélküli vezérlés átadó utasítás. Végrehajtása során az nn operandus a programszámláló regiszterbe (PC) töltődik, és így kijelöli azt a memóriarekeszt, ahonnan a CPU a következő utasítást kiemeli.

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,50

 


JR C,e
Művelet:
Ha C=0, a PC a normál módon inkrementálódik
Ha C=1, PCPC+e
Formátum:

OP kód

Operandusok
 
JR
C,e
0
0
1
1
1
0
0
0
38
<
-
-
e-2
-
-
-
>
 

Leírás:
Az utasítás az átvitel bit vizsgálatának eredményétől függően egy más programszegmensre történő relatív címzésű feltételes vezérlésátadást tesz lehetővé. Ha a vizsgálat során az "átvitel bit" tartalma 1, akkor az e 2-es komplemensű egész számként értelmezett címkiegészítés értéke a programszámláló (PC) tartalmához adódik, és a következő utasítást az így kapott címről fogja a CPU kiemelni. Az ugrás hossza az utasítás OP kódját tartalmazó memóriarekesz címétől értendő, és tartománya -126...+129 byte lehet. Az assembler kiszámolja az "e" címkiegészítés értékét, majd az utasítás végrehajtása során automatikusan 2-vel növelt PC tartalom miatt szükségessé váló korrekciót (2-vel való csökkentését) is végrehajtja. (A PC tartalomnak ez a 2-vel történő növelése az utasítás 2 byte-os hosszának következménye). Ha az átvitel bit 0-t tartalmaz, a következő utasítást a normál módon soron következő memóriarekeszből emeli ki a CPU.

Ha a feltétel teljesül:

M ciklusok: 3 T állapotok: 12 (4, 3, 5) 4 MHz V.i.:3,00

Ha a feltétel nem teljesül:

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Az átvitel bit 1-es állapotban van, és a 480H memóriacímtől 4 rekesznyit kell visszaugrani. Az assembler nyelvű utasítás:
JR C, CIMKE
Az eredményként kapott tárgykód, és a PC végső értéke az alábbi táblázaton látható:

Rekesz   OP kód
47C
47D
47E
47F
480
481
CIMKE: -
-
-
-
JR,CIMKE
PC az ugrás után
-
-
-
38
FA (-6, 2-es komplemens kódban)

 


JR e
Művelet: PCPC+e
Formátum:

OP kód

Operandusok
 
JR
e
0
0
0
1
1
0
0
0
18
<
-
-
e-2
-
-
-
>
 

Leírás:
Az utasítás egy más programszegmensre történő, relatív címzésű, feltétel nélküli vezérlésátadást biztosít. Az e 2-es komplemensű egész számként értelmezett címkiegészítés értéke a programszámláló (PC) tartalmához adódik, és a, következő utasítást az így kapott címről fogja a CPU kiemelni. Az ugrás hossza az utasítás OP kódját tartalmazó memóriarekesz címétől értendő, és tartománya -126...+129 byte lehet. Az assembler kiszámolja az "e" címkiegészítés értékét, majd az utasítás végrehajtása során automatikusan 2-vel növelt PC tartalom miatt szükségessé váló korrekciót (2-vel való csökkentést) is végrehajtja. (A PC tartalomnak ez a 2-vel történő növelése az utasítás 2 byte-os hosszának következménye).

M ciklusok: 3 T állapotok: 12 (4, 3, 5) 4 MHz V.i.:3,00

Példa:
A 480-as címtől 5 rekeszre előre ugráskor a következő assembler nyelvű utasítást használjuk:
JR CIMKE
Az eredményként kapott tárgykód, és a PC végső értéke az alábbi táblázaton látható:

Rekesz   OP kód
480
481
482
483
484
485





CIMKE:
JR CIMKE
-
-
-
-
-
18
03



PC az ugrás után

 


JR NC,e
Művelet:
Ha C=1, a PC a normál módon inkrementálódik
Ha C=0, PCPC+e
Formátum:

OP kód

Operandusok
 
JR
NC,e
0
0
1
1
0
0
0
0
30
<
-
-
e-2
-
-
-
>
 

Leírás:
Az utasítás az átvitel bit vizsgálatának eredményétől függően egy más programszegmensre történő relatív címzéssel feltételes vezérlésátadást tesz lehetővé. Ha a vizsgálat során az "átvitel bit" tartalma 0, akkor az e 2-es komplemensű egész számként értelmezett címkiegészítés értéke a programszámláló (PC) tartalmához adódik, és a következő utasítást az így kapott címről fogja a CPU kiemelni. Az ugrás hossza az utasítás OP kódját tartalmazó memóriarekesz címétől értendő, és tartománya -126...+129 byte lehet. Az assembler kiszámolja az "e" címkiegészítés értékét, majd az utasítás végrehajtása során automatikusan 2-vel növelt PC tartalom miatt szükségessé váló korrekciót (2-vel való csökkentést) is végrehajtja. (A PC tartalomnak ez a 2-vel történő növelése az utasítás 2 byte-os hosszának következménye).
Ha az átvitel bit 1-et tartalmaz, a következő utasítást a normál módon soron következő memóriarekeszből emeli ki a CPU.

Ha a feltétel teljesül:

M ciklusok: 3 T állapotok: 12 (4, 3, 5) 4 MHz V.i.:3,00

Ha a feltétel nem teljesül:

M ciklusok: 7 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Az átvitel bit törölt, és az ugró utasítást meg kell ismételni. Az assembler nyelvű utasítás:
CIMKE: JR NC,CIMKE
Az eredményként kapott tárgykód, és a PC végső értéke az alábbi táblázaton látható:

Rekesz   OP kód
480
481
CIMKE: JR NC,CIMKE 30 - PC az ugrás után
00

 


JR NZ,e
Művelet:
Ha Z=1, a PC a normál módon inkrementálódik
Ha Z=0, PCPC+e
Formátum:

OP kód

Operandusok
 
JR
NZ,e
0
0
1
0
0
0
0
0
20
<
-
-
e-2
-
-
-
>
 

Leírás:
Az utasítás a Z zérus bit vizsgálatának eredményétől függően egy más programszegmensre történő relatív címzésű feltételes vezérlésátadást tesz lehetővé. Ha a vizsgálat során a bit tartalma 0, akkor az e 2-es komplemensű egész számként értelmezett címkiegészítés értéke a programszámláló (PC) tartalmához adódik, és a következő utasítást az így kapott címről fogja a CPU kiemelni. Az ugrás hossza az utasítás 0P kódját tartalmazó memóriarekesz címétől értendő, és tartománya -126...+129 byte lehet. Az assembler kiszámolja az "e" címkiegészítés értékét, majd az utasítás végrehajtása során automatikusan 2-vel növelt PC tartalom miatt szükségessé váló korrekciót (2-vel történő csökkentést) is végrehajtja. (A PC tartalomnak ez a 2-vel való növelése az utasítás 2 byte-os hosszának következménye). Ha a Z bit 1-et tartalmaz, a következő utasítást a normál módon soron következő memóriarekeszből emeli ki a CPU.

Ha a feltétel teljesül:

M ciklusok: 3 T állapotok: 12 (4, 3, 5) 4 MHz V.i.:3,00

Ha a feltétel nem teljesül:

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
A Z zérus bit törölt, és a 480H memóriacímtől 4 rekesznyit kell visszaugrani. Az assembler nyelvű utasítás:
JR NZ, CIMKE
Az eredményként kapott tárgykód, és a PC végső értéke az alábbi táblázaton látható:

Rekesz   OP kód
47C
47D
47E
47F
480
481
CIMKE: -
-
-
-
JR NZ,CIMKE
PC az ugrás után



20
FA (-6, 2-es komplemens kódban)

 


JR Z,e
Művelet:
Ha Z=0, a PC a normál módon inkrementálódik
Ha Z=1, PCPC+e
Formátum:

OP kód

Operandusok
 
JR
Z,e
0
0
1
0
1
0
0
0
28
<
-
-
e-2
-
-
-
>
 

Leírás:
Az utasítás a Z zérus bit vizsgálatának eredményétől függően egy más programszegmensre történő relatív címzésű feltételes vezérlésátadást tesz lehetővé. Ha a vizsgálat során a bit tartalma 1, akkor az "e" 2-es komplemensű egész számként értelmezett címkiegészítés értéke a programszámláló (PC) tartalmához adódik, és a következő utasítást az így kapott címről fogja a CPU kiemelni. Az ugrás hossza az utasítás OP kódját tartalmazó memóriarekesz címétől értendő, és tartománya -126...+129 byte lehet. Az assembler kiszámolja az "e" címkiegészítés értékét, majd az utasítás végrehajtása során automatikusan 2-vel megnövelt PC tartalom miatt szükségessé váló korrekciót (2-vel való csökkentést) is elvégzi. (A PC tartalomnak ez a 2-vel történő növelése az utasítás 2 byte-os hosszának következménye). Ha a Z bit 0-t tartalmaz, a következő utasítást a normál módon soron következő memóriarekeszből emeli ki a CPU.

Ha a feltétel teljesül:

M ciklusok: 3 T állapotok: 12 (4, 3, 5) 4 MHz V.i.:3,00

Ha a feltétel nem telesül:

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
A Z zérus bit 1-es állapotban van, és a 300H memóriacímtől 5 rekesznyit kell előre ugrani. Az assembler nyelvű utasítás a következő:
JR Z,CIMKE
Az eredményként kapott tárgykód, és a PC végső értéke az alábbi táblázaton látható:

Rekesz   OP kód
300
301
302
303
304
305





CIMKE:
JR Z,CIMKE
-
-
-
-
-
28
03



PC az ugrás után

 


LD A,(BC)
Művelet: A(BC)
Formátum:

OP kód

Operandusok
 
LD
A,(BC)
0
0
0
0
1
0
1
0
0A

Leírás:
A BC regiszterpár tartalma által specifikált memóriarekesz tartalma az akkumulátorba töltődik.

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Ha a BC regiszterpár tartalma számértékben 4747H, és a 4747H című memóriarekeszben lévő byte 12H, akkor az
LD A,(BC)
utasítás végrehajtásának eredményeként a 12H byte az A regiszterbe töltődik.


LD A,(DE)
Művelet: A(DE)
Formátum:

OP kód

Operandusok
 
LD
A,(DE)
0
0
0
1
1
0
1
0
1A

Leírás:
A DE regiszterpár tartalma által specifikált memóriarekesz tartalma az akkumulátorba töltődik.

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Ha a DE regiszterpár tartalma számértékben 30A2H, és a 30A2H című memóriarekeszben lévő byte 22H, akkor az
LD A,(DE)
utasítás végrehajtásának eredményeként a 22H byte az A regiszterbe töltődik.


LD A,I
Művelet: AI
Formátum:

OP kód

Operandusok
 
LD
A,I
1
1
1
0
1
1
0
1
ED
0
1
0
1
0
1
1
1
57

Leírás:
Az I Interrupt Vector Register tartalma az akkumulátorba töltődik.

M ciklusok: 2 T állapotok: 9 (4, 5) 4 MHz V.i.:2,25

A jelzőbit érintett bitjei:

S:
1-es állapotba kerül, ha az I regiszter negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az I regiszter nulla; egyébként törlődik
H:
törlődik
P/V:
IFF2 értékét veszi fel
N:
törlődik
C:
változatlan marad

Példa:
Ha az Interrupt Vector Register-ben lévő byte 4AH, akkor az
LD A,I
utasítás végrehajtásának az eredményeként az akkumulátor is 4AH-t fog tartalmazni.

Megjegyzés: az LD A, I és az LD A, R utasítás hibásan tárolja a megszakítás engedélyezését a P/V biten, ha véletlenül pont ilyen utasításnál történik megszakítás. Ez nem minden Z80 változatnál fordul elő, csak az NMOS hibás.


LD A,(nn)
Művelet: A(nn)
Formátum:

OP kód

Operandusok
 
LD
A,(nn)
0
0
1
1
1
0
1
0
3A
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn operandusok által specifikált memóriarekesz tartalma az akkumulátorba töltődik. Az első a operandus egy 2 byte-os memóriacím alacsonyabb helyértékű byte-ja.

M ciklusok: 4 T állapotok: 13 (4, 3, 3, 3) 4 MHz V.i.:3,25

Példa:
Ha nn tartalma számértékben 8832H, és a 8832H című memóriarekeszben lévő byte 04H, akkor az
LD A,( nn)
utasítás végrehajtásának eredményeként a 04H byte az akkumulátorba töltődik.


LD A,R
Művelet: AR
Formátum:

OP kód

Operandusok
 
LD
A,R
1
1
1
0
1
1
0
1
ED
0
1
0
1
1
1
1
1
5F

Leírás:
Az R Memory Refresh Register tartalma az akkumulátorba töltődik.

M ciklusok: 2 T állapotok: 9 (4, 5) 4 MHz V.i.:2,25

A jelzőbit regiszter bitjei:

S:
1-es állapotba kerül, ha az R regiszter negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az Rregiszter nulla; egyébként törlődik
H:
törlődik
P/V:
IFF2 értékét veszi fel
N:
törlődik
C:
változatlan marad

Példa:
Ha a Memory Refresh Register-ben lévő byte 4AH, akkor az
LD A,R
utasítás végrehajtásának eredményeként az akkumulátor is 4AH-t fog tartalmazni.

Megjegyzés: az LD A, I és az LD A, R utasítás hibásan tárolja a megszakítás engedélyezését a P/V biten, ha véletlenül pont ilyen utasításnál történik megszakítás. Ez nem minden Z80 változatnál fordul elő, csak az NMOS hibás.


LD (BC),A
Művelet: (BC)A
Formátum:

OP kód

Operandusok
 
LD
(BC),A
0
0
0
0
0
0
1
0
02

Leírás:
A BC regiszterpár tartalma által specifikált memóriarekeszbe töltődik az akkumulátor tartalma.

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Ha az akkumulátor 7AH-t és a BC regiszterpár 1212H-t tartalmaz, akkor az
LD (BC),A
utasítás végrehajtásának eredményeként a 7AH a 1212H című memóriarekeszbe töltődik.


LD (DE),A
Művelet: (DE)A
Formátum:

OP kód

Operandusok
 
LD
(DE),A
0
0
0
1
0
0
1
0
12

Leírás:
Az akkumulátor tartalma a DE regiszterpár tartalma által specifikált memóriarekeszbe töltődik.

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Ha a DE regiszterpár tartalma 1128H, és az akkumulátorban lévő byte A0H, akkor az
LD (DE),A
utasítás végrehajtásának eredményeként A0H a 1128H című memóriarekeszbe töltődik.


LD (HL),n

Művelet: (HL)n

Formátum:

OP kód

Operandusok
 
LD
(HL),n
0
0
1
1
0
1
1
0
36
<
-
-
n
-
-
-
>
 

Leírás:
Az n egész szám a HL regiszterpár tartalma által specifikált memóriarekeszbe töltődik.

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,50

Példa:
Ha a HL regiszterpár 4444H-t tartalmaz, akkor az
LD (HL), 28H
utasítás végrehajtásának eredményeként a 4444H című memóriarekeszbe 28H töltődik.


LD dd,nn
Művelet: ddnn
Formátum:

OP kód

Operandusok
 
LD
dd,nn
0
0
d
d
0
0
0
1
<
-
-
n
-
-
-
>
<
-
-
n
-
-
-
>

 

Leírás:
Az nn 2 byte-os egész szám a dd regiszterpárba töltődik, ahol a dd a BC, DE, HÉ vagy SP regiszterpárok egyikét jelöli, ezek tárgykódban a következők lehetnek:

Regiszterpár
dd
BC
00
DE
01
HL
10
SP
11

A tárgykódban elsőként szereplő n operandus az alacsonyabb helyértékű byte-ot képviseli.

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,50

Példa:
Az
LD HL,5000H
utasítás végrehajtása után a HL regiszterpár tartalma 5000H lesz.


LD dd,(nn)
Művelet: ddH(nn+1), ddL(nn)
Formátum:

OP kód

Operandusok
 
LD
dd,nn
1
1
1
0
1
1
0
1
ED
0
1
d
d
1
0
1
1
 
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn című memóriarekesz tartalma a dd regiszterpár alacsonyabb helyértékű regiszterébe töltődik, míg az nn+l című memóriarekesz tartalma a dd regiszterpár magasabb helyértékű byte-jába töltődik. A dd regiszterpár a BC, DE, HL vagy SP regiszterpárok egyikét jelöli, amelyek tárgykódban a következők lehetnek:

Regiszterpár
dd
BC
00
DE
01
HL
10
SP
11

A fenti tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 6 T állapotok: 20 (4, 4, 3, 3, 3, 3) 4 MHz V.i.:5,00

Példa:
Ha a 2130H című memóriarekeszben lévő byte 65H, és a 2131H című memóriarekeszben lévő byte 78H, akkor az
LD BC,(2130H)
utasítás végrehajtásának eredményeként a BC regiszterpár 7865H-t fog tartalmazni.


LD HL,(nn)
Művelet: H(nn+1), L(nn)
Formátum:

OP kód

Operandusok
 
LD
HL,(nn)
0
0
1
0
1
0
1
0
2A
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn című memóriarekesz tartalma a HL regiszterpár alacsonyabb helyértékű regiszterébe (L regiszter) töltődik, míg az nn+1 című memóriarekesz tartalma a HL regiszterpár magasabb helyértékű byte-jába (H regiszter) töltődik. A fenti tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 5 T állapotok: 16 (4, 3, 3, 3, 3) 4 MHz V.i.:4,00

Példa:
Ha a 4545H című memóriarekesz 37H-t, és a 4546H című memóriarekesz A1H-t tartalmaz, akkor az
LD HL,(4545H)
utasítás végrehajtásának eredményeként a HL regiszterpár A137H-t fog tartalmazni.


LD (HL),r
Művelet: (HL)r
Formátum:

OP kód

Operandusok
 
LD
(HL),r
0
1
1
1
0
<
r
>

Leírás:
Az r regiszter tartalma a HL regiszterpár tartalma által specifikált memóriarekeszbe töltődik. Az r az A, B, C, D, E, H vagy L regisztereket azonosítja, amelyek tárgykódban a következők lehetnek:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Ha a HL regiszterpár tartalma a 2146H memóriacímre mutat, és a B regiszterben lévő byte 29H, akkor az
LD (HL),B
utasítás végrehajtásának eredményeként a 2146H című memóriarekesz szintén 29H-t fog tartalmazni.


LD I,A

Művelet: IA

Formátum:

OP kód

Operandusok
 
LD
I,A
1
1
1
0
1
1
0
1
ED
0
1
0
0
0
1
1
1
47

Leírás:
Az akkumulátor tartalma az I Interrupt Control Vector Register-be töltődik.

M ciklusok: 2 T állapotok: 9 (4, 5) 4 MHz V.i.:2,25

Példa:
Ha az akkumulátor tartalma számértékben 81H, akkor az
LD I,A
utasítás végrehajtása után az Interrupt Vector Register szintén 81H-t fog tartalmazni.


LD IX,nn
Művelet: IXnn
Formátum:

OP kód

Operandusok
 
LD
IX,nn
1
1
0
1
1
1
0
1
DD
0
0
1
0
0
0
0
1
21
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn egész szám az IX index regiszterbe töltődik. A fenti assemblált tárgykódban elsőként szereplő n operandus az alacsonyabb helyértékű byte.

M ciklusok: 4 T állapotok: 14 (4, 4, 3, 3) 4 MHz V.i.:3,50

Példa:
Az
LD IX,45A2H
utasítás végrehajtásának eredményeként az index regiszter a 45A2H egész számot fogja tartalmazni.


LD IX,(nn)
Művelet: IXH(nn+1), IXL(nn)
Formátum:

OP kód

Operandusok
 
LD
IX,(nn)
1
1
0
1
1
1
0
1
DD
0
0
1
0
1
0
1
0
2A
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn című memóriarekesz tartalma az IX index regiszter alacsonyabb helyértékű byte-jába töltődik, míg az nn+l című memóriarekesz tartalma az IX index regiszter magasabb helyértékű byte-jába töltődik. A fenti tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 6 T állapotok: 20 (4, 4, 3, 3, 3, 3) 4 MHz V.i.:5,00

Példa:
Ha a 6666H című memóriarekesz 92H-t, és a 6667H című memóriarekesz DAH-t tartalmaz, akkor az
LD IX, (6666H)
utasítás végrehajtásának eredményeként az IX index regiszter DA92H-t fog tartalmazni.


LD (IX+d),n
Művelet: (IX+d)n
Formátum:

OP kód

Operandusok
 
LD
(IX+d),n
1
1
0
1
1
1
0
1
DD
0
0
1
1
0
1
1
0
36
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az n operandus abba a memóriarekeszbe töltődik, amelynek címét az IX index regiszter, és a d 2-es komplemensű kódban adott címkiegészítés operandus összege jelöli ki.

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.:4,75

Példa:
Ha az IX index regiszter tartalma számértékben 219AH, az
LD (IX+5H),5AH
utasítás végrehajtásának eredményeként az 5AH byte a 219FH című memóriarekeszbe töltődik.


LD (IX+d),r
Művelet: (IX+d)r
Formátum:

OP kód

Operandusok
 
LD
(IX+d),r
1
1
0
1
1
1
0
1
DD
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az r regiszter tartalma abba a memóriarekeszbe töltődik, amelynek címét az IX index regiszter, és a d 2-es komplemensű egész számként értelmezett címkiegészítés összege határozza meg. Az r szimbólum az A, B, C, D, E, H vagy L regisztereket azonosítja, amelyek tárgykódban a következők:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.:4,75

Példa:
Ha a C regiszterben lévő byte 1CH, és az IX index regiszter 3100H-t tartalmaz, akkor az
LD (IX+6H), C
utasítás elvégzi a 3100H+6H összegzést, és 1CH-t a 3106H című memóriarekeszbe tölti.


LD IY,nn
Művelet: IYnn
Formátum:

OP kód

Operandusok
 
LD
IY,nn
1
1
1
1
1
1
0
1
FD
0
0
1
0
0
0
0
1
21
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn egész szám az IY index regiszterbe töltődik. A fenti tárgykódban elsőként szereplő n operandus az alacsonyabb helyiértékű byte-ot jelenti.

M ciklusok: 4 T állapotok: 19 (4, 4, 3, 3) 4 MHz V.i.:3,50

Példa:
Az
LD IY,7733H
utasítás végrehajtásának eredményeként az IY index regiszter a 7733H egész számot fogja tartalmazni.


LD IY,(nn)
Művelet: IYH(nn+1), IYL(nn)
Formátum:

OP kód

Operandusok
 
LD
IY,(nn)
1
1
1
1
1
1
0
1
FD
0
0
1
0
1
0
1
0
2A
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az nn című memóriarekesz tartalma az IY index regiszter alacsonyabb helyértéiLű byte-jába töltődik, míg az nn+1 című memóriarekesz tartalma az IY index regiszter magasabb helyértékű byte-jóba töltődik. A fenti tárgykódban elsőként szereplő n operandus az alacsonyabb helyértékű byte.

M ciklusok: 6 T állapotok: 20 (4, 4, 3, 3, 3, 3) 4 MHz V.i.:5,00

Példa:
Ha a 6666H című memóriarekesz 92H-t, és a 6667H című memóriarekesz DAH-t tartalmaz, akkor az
LD IY,(6666H)
utasítás végrehajtásának eredményeként az IY index regiszter tartalma, DA92H lesz.


LD (IY+d),n
Művelet: (IY+d)n
Formátum:

OP kód

Operandusok
 
LD
(IY+d),n
1
1
1
1
1
1
0
1
FD
0
0
1
1
0
1
1
0
36
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az n egész szám abba a memóriarekeszbe töltődik, amelynek címét az index regiszter, és a d egész számként értelmezett címkiegészítés összege határozza meg.

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.:4,75

Példa:
Ha az IY index regiszter tartalma számértékben A940H, az
LD (IY+10H), 97H
utasítás végrehajtásának eredményeként a 97H byte az A950H című memóriarekeszbe töltődik.


LD (IY+d),r
Művelet: (IY+d)r
Formátum:

OP kód

Operandusok
 
LD
(IY+d),r
1
1
1
1
1
1
0
1
FD
0
1
1
1
0
<
r
>
 
<
-
-
d
-
-
-
>
 

Leírás:
Az r regiszter tartalma abba a memóriarekeszbe töltődik, amelynek címét az IY index regiszter, és a d 2-es komplemensű egész számként értelmezett címkiegészítés összege határozza meg. Az r szimbólum az alábbi táblázat alapján specifikálható:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.:4,75

Példa:
Ha a C regiszterben lévő byte 48H, és az IY index regiszter 2A11H-t tartalmaz, akkor az
LD (IY+4H),C
utasítás elvégzi a 2A11H+4H összegzést, és 48H-t a 2A15H című memóriarekeszbe tölti.


LD (nn),A
Művelet: (nn)A
Formátum:

OP kód

Operandusok
 
LD
(nn),A
0
0
1
1
0
0
1
0
32
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az akkumulátor tartalma az nn operandusok által specifikált memóriarekeszbe töltődik. A fenti tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 4 T állapotok: 13 (4, 3, 3, 3) 4 MHz V.i.:3,25

Példa:
Ha az akkumulátor tartalma D7H, akkor az
LD (3141H),A
utasítás végrehajtása után D7H a 3141H címez memóriarekeszbe töltődik.


LD (nn),dd
Művelet: (nn+1)ddH, (nn)ddL
Formátum:

OP kód

Operandusok
 
LD
nn,dd
1
1
1
0
1
1
0
1
ED
0
1
d
d
0
0
1
1
 
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
A dd regiszterpár alacsonyabb helyértékű byte-ja az nn című memóriarekeszbe töltődik, míg a magasabb helyértékű byte az nn+1 című memóriarekeszbe töltődik. A dd regiszterpár a BC, DE, HL vagy SP regiszterpárok varmelyikét azonosítja, melyek tárgykódban a következők:

Regiszterpár
dd
BC
00
DE
01
HL
10
SP
11

A fenti tárgykódban elsőként szereplő n operandus egy 2 byte-os memóriacím alacsonyabb helyértékű byte-ja.

M ciklusok: 6 T állapotok: 20 (4, 4, 3, 3, 3, 3) 4 MHz V.i.:5,00

Példa:
Ha a BC regiszterpár tartalma számértékben 4644H, akkor az
LD (1000H),BC
utasítás végrehajtásának eredményeként 44H az 1000H című memóriarekeszbe, 46H pedig az 1001H című memóriarekeszbe töltődik.


LD (nn),HL
Művelet: (nn+1)H, (nn)L
Formátum:

OP kód

Operandusok
 
LD
(nn),HL
0
0
1
0
0
0
1
0
22
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
A HL regiszterpár tartalmának alacsonyabb helyértékű byte-ja (L regiszter) az nn című memóriarekeszbe töltődik, és HL tartalmának magasabb helyertékű byte-ja pedig (H regiszter) az nn+1 című memóriarekeszbe töltődik. A fenti assemblált tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 5 T állapotok: 16 (4, 3, 3, 3, 3) 4 MHz V.i.:4,00

Példa:
Ha a HL regiszterpár tartalma 483AH, akkor az
LD (B229H),HL
utasítás végrehajtásának eredményeként a B229H című memóriarekesz tartalma 3AH, a B22AH című memóriarekeszé pedig 48H lesz.


LD (nn),IX
Művelet: (nn+1)IXH, (nn)IXL
Formátum:

OP kód

Operandusok
 
LD
(nn),IX
1
1
0
1
1
1
0
1
DD
0
0
1
0
0
0
1
0
22
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az IX index regiszter tartalmának alacsonyabb helyértékű byte-ja az nn című memóriarekeszbe töltődik, míg a magasabb helyértékű byte az nn+1 című memóriarekeszbe töltődik. A fenti tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 6 T állapotok: 20 (4, 4, 3, 3, 3, 3) 4 MHz V.i.:5,00

Példa:
Ha az IX index regiszter 5A30H-t tartalmaz, akkor az
LD (4392H),IX
utasítás végrehajtásának eredményeként a 4392H című memóriarekesz tartalma számértékben 30H lesz, a 4393H című memóriarekesz tartalma pedig 5AH lesz.


LD (nn),IY
Művelet: (nn+1)IYH, (nn)IYL
Formátum:

OP kód

Operandusok
 
LD
(nn),IY
1
1
1
1
1
1
0
1
FD
0
0
1
0
0
0
1
0
22
<
-
-
n
-
-
-
>
 
<
-
-
n
-
-
-
>
 

Leírás:
Az IY index regiszter tartalmának alacsonyabb helyértékű byte-ja az nn című memóriarekeszbe töltődik, míg a magasabb helyértékű byte az nn+1 című memóriarekeszbe töltődik. A fenti tárgykódban elsőként szereplő n operandus nn alacsonyabb helyértékű byte-ja.

M ciklusok: 6 T állapotok: 20 (4, 4, 3, 3, 3, 3) 4 MHz V.i.:5,00

Példa:
Ha az IY index regiszter 4174H-t tartalmaz, akkor az
LD (8838H),IY
utasítás végrehajtásának eredményeként a 8838H című memóriarekesz tartalma számértékben 74H lesz, a 8839H című memóriarekesz tartalma pedig 41H lesz.


LD R,A
Művelet: RA
Formátum:

OP kód

Operandusok
 
LD
R,A
1
1
1
0
1
1
0
1
ED
0
1
0
0
1
1
1
1
4F

Leírás:
Az akkumulátor tartalma az R Memory Refresh regiszterbe töltődik.

M ciklusok: 2 T állapotok: 9 (4, 5) 4 MHz V.i.:2,25

Példa:
Ha az akkumulátor tartalma számértékben B4H, akkor az
LD R,A
utasítás végrehajtása után az R Memory Refresh regiszter szintén B4H-t fog tartalmazni.


LD r,(HL)
Művelet: r(HL)
Formátum:

OP kód

Operandusok
 
LD
r,(HL)
0
1
<
r
>
1
1
0

Leírás:
A HL tartalma által kijelölt memóriarekeszben lévő byte az r regiszterbe töltődik, ahol r tárgykódban az A, B, C, D, E, H vagy L regisztereket azonosítja:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Ha a HL regiszterpár tartalma számértékben 75A1H, és a 75A1H című memóriarekeszben lévő byte 58H, akkor az
LD C,(HL)
utasítás végrehajtásának eredményeként 58H a C regiszterbe töltődik.


LD r,(IX+d)
Művelet: r(IX+d)
Formátum:

OP kód

Operandusok
 
LD
r,(IX+d)
1
1
0
1
1
1
0
1
DD
0
1
<
r
>
1
1
0
 
<
-
-
d
-
-
-
>
 

Leírás:
Az IX+d operandus (az IX index regiszter tartalma és a d egész számmal adott címkiegészítés által kijelölt memóriarekesz tartalmának összege) az r regiszterbe töltődik, ahol r az A, B, C, D, E, H vagy L regisztereket azonosítja, amelyek tárgykódban a következők:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.:4,75

Példa:
Ha az IX index regiszter tartalma számértékben 25AFH, akkor az
LD B,(IX+19H)
utasítás a 25AFH+19H összeadást eredményezi, ami a 25C8H című memóriarekeszre mutat. Ha ez a memóriarekesz 39H-t tartalmaz, az utasítás végrehajtásának eredményeként a B regiszter szintén 39H-t fog tartalmazni.


LD r,(IY+d)
Művelet: r(IY+d)
Formátum:

OP kód

Operandusok
 
LD
r,(IY+d)
1
1
1
1
1
1
0
1
FD
0
1
<
r
>
1
1
0
 
<
-
-
d
-
-
-
>
 

Leírás:
Az IY+d operandus (az IY index regiszter tartalma, és a d egész számmal adott címkiegészítés által kijelölt memóriarekesz tartalmának össze-e) az r regiszterbe töltődik, ahol r az A, B, C, D, E, H vagy L regisztereket azonosítja, amelyek a tárgykódban a követezők:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 5 T állapotok: 19 (4, 4, 3, 5, 3) 4 MHz V.i.:4,75

Példa:
Ha az IY index regiszter tartalma számértékben 25AFH, az
LD B,(IY+19H)
utasítás a 25AFH+19H összeadást eredményezi, amely a 25C8H című memóriarekeszre mutat. Ha ez a memóriarekesz 39H-t tartalmaz, az utasítás végrehajtásának eredményeként a B regiszter szintén 39H-t fog tartalmazni.


LD r,n
Művelet: rn
Formátum:

OP kód

Operandusok
 
LD
r,n
0
0
<
r
>
1
1
0
<
-
-
n
-
-
-
>

Leírás:
Az n 8 bites egész szám az r által meghatározott regiszterek egyikébe töltődik. Az r az A, B, C, D, E, H vagy L regisztereket azonosítja, amelyek tárgykódban a következők:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 2 T állapotok: 7 (4, 3) 4 MHz V.i.:1,75

Példa:
Az
LD E,A5H
utasítás végrehajtása után az E regiszter tartalma A5H lesz.


LD r,r'
Művelet: rr'
Formátum:

OP kód

Operandusok
 
LD
r,r'
0
1
<
r
>
<
r'
>

Leírás:
Az r' operandus által meghatározott háttérregiszter tartalma az r operandus által meghatározott regiszterbe töltődik. Megjegyzés: r,r' az A, B, C, D, E, H vagy L regiszterek bármelyikét azonosítja, amelyek tárgykódban a következők:

Regiszter
r, r'
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

Példa:
Ha a H regiszter tartalma számértékben 8AH, és az E regiszter 10H-t tartalmaz, akkor az
LD H,E
utasítás végrehajtása után mindkét regiszter 10H-t fog tartalmazni


LD SP,HL
Művelet: SPHL
Formátum:

OP kód

Operandusok
 
LD
SP,HL
1
1
1
1
1
0
0
1
F9

Leírás:
A HL regiszterpár tartalma az SP veremtár-mutató regiszterbe töltődik.

M ciklusok: 1 T állapotok: 6 4 MHz V.i.:1,50

Példa:
Ha a HL regiszterpár 442EH-t tartalmaz, akkor az
LD SP,HL
utasítás végrehajtása után az SP regiszter is 442EH-t fog tartalmazni.


LD SP,IX
Művelet: SPIX
Formátum:

OP kód

Operandusok
 
LD
SP,IX
1
1
0
1
1
1
0
1
DD
1
1
1
1
1
0
0
1
F9

Leírás:
Az IX regiszterpár tartalma az SP veremtár-mutató regiszterbe töltődik.

M ciklusok: 2 T állapotok: 10 (4, 6) 4 MHz V.i.:2,50

Példa:
Ha a IX regiszterpár 98DAH-t tartalmaz, akkor az
LD SP,IX
utasítás végrehajtása után az SP regiszter tartalma szintén 98DAH lesz.


LD SP,IY
Művelet: SPIY
Formátum:

OP kód

Operandusok
 
LD
SP,IY
1
1
1
1
1
1
0
1
FD
1
1
1
1
1
0
0
1
F9

Leírás:
Az IY index regiszter 2 byte-os tartalma az SP regiszterbe töltődik.

M ciklusok: 2 T állapotok: 10 (4, 6) 4 MHz V.i.:2,50

Példa:
Ha az IY index regiszter tartalmazza az A227H egész számot, akkor az
LD SP,IY
utasítás végrehajtásának eredményeként az SP regiszter is A227H-t fog tartalmazni.


LDD
Művelet: (DE)(HL), DEDE-1, HLHL-1, BCBC-1
Formátum:

OP kód

Operandusok
 
LDD
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
1
0
0
0
A8

Leírás:
Ez a két byte hosszúságú utasítás a HL regiszterpár tartalma által megcímzett memóriarekeszben lévő byte-ot a DE regiszterpár tartalma által megcímzett memóriarekeszbe tölti, majd mindkét regiszterpár, és a BC (byte számláló) regiszterpár is dekrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
1-es állapotba kerül, ha BC-1<>0; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a HL regiszterpár 1111H-t tartalmaz, az 1111H című memóriarekeszben lévő byte 88H a DE regiszterpár tartalma 2222H, a 2222H című memóriarekeszben lévő byte 66H, és a BC regiszterpár 7H-t tartalmaz, akkor az
LDD
utasítás végrehajtásának eredményeként a regiszterpárok és a memóriarekeszek tartalma a következőképpen alakul:

HL :
(1111H) :
DE :
(2222H) :
BC :
1110H
88H
2221H
88H
6H

LDDR
Művelet: (DE)(HL), DEDE-1, HLHL-1, BCBC-1
Formátum:

OP kód

Operandusok
 
LDDR
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
1
0
0
0
B8

Leírás:
A két byte hosszúságú utasítás a HL regiszterpár tartalma által megcímzett memóriarekeszben lévő byte-ot a DE regiszterpár tartalma által megcímzett memóriarekeszbe tölti, majd mindkét regiszterpár, és a BC regiszterpár (byte számláló) is dekrementálódik. Ha a dekrementálás eredményeként BC tartalma zérus lesz, akkor az utasítás befejeződik. Ha viszont a BC tartalma nem zérus, ekkor a programszámláló tartalma. 2-vel dekrementálódik, és az utasítás megismétlődik. Megjegyezzük, hogy ha BC tartalma az utasítás végrehajtását megelőzően zérusra lett beállítva, az utasítás 64K-szor ciklikusan ismétlődik. Minden egyes byte átvitelét követően 2 felfrissítési ciklus zajlik le, és ilyenkor megszakítási kérelmek is érvényre juthatnak.

Ha BC<>0:

M ciklusok: 5 T állapotok: 21 (4, 4, 3, 5, 5) 4 MHz V.i.:5,25

Ha BC=0:

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a, HL regiszterpár 1114H-t tartalmaz, a DE regiszterpár 2225H-t, a BC regiszterpár 0003H-t tartalmaz, és a memóriarekeszek tartalma a következőképpen alakul:

(1114H) :
(1113H) :
(1112H) :
A5H
36H
88H
 
(2225H) :
(2224H) :
(2223H) :
C5H
59H
66H

akkor az
LDDR
utasítás végrehajtása után a regiszterpárok és a memóriarekeszek tartalma a következő lesz:

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

LDI
Művelet: (DE)(HL), DEDE+1, HLHL+1, BCBC-1
Formátum:

OP kód

Operandusok
 
LDI
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
0
0
0
0
A0

Leírás:
Az utasítás a HL regiszterpár tartalma által megcímzett memóriarekeszben lévő byte-ot a DE regiszterpár tartalma által megcímzett memóriarekeszbe tölti, majd mindkét regiszterpár inkrementálódik, és a BC (byte számláló) regiszterpár dekrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
1-es állapotba kerül, ha BC-1<>0; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
H a HL regiszterpár 1111H-t tartalmaz, az 1111H című memóriarekeszben lévő byte 88H a DE regiszterpár 2222H-t tartalmaz, és a 2222H című memóriarekeszben lévő byte 66H, a BC regiszterpár tartalma 7H, akkor az
LDI
utasítás végrehajtásának eredményeként a regiszterpárok és a memóriarekeszek tartalma a következőképpen alakul:

HL :
(1111H) :
DE :
(2222H) :
BC :
1112H
88H
2223H
88H
6H

LDIR
Művelet: (DE)(HL), DEDE+1, HLHL+1, BCBC-1
Formátum:

OP kód

Operandusok
 
LDI
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
0
0
0
0
B0

Leírás:
A két byte hosszúságú utasítás a HL regiszterpár tartalma által megcímzett memóriarekeszben lévő byte-ot a DE regiszterpár tartalma által megcímzett memóriarekeszbe tölti, majd mindkét regiszterpár inkrementálódik, és a BC (byte számláló) regiszterpár dekrementálódik. Ha a dekrementálás eredményeként BC tartalma, zérus lesz, akkor az utasítás befejeződik. Ha viszont a BC tartalma nem zérus, akkor a programszámláló tartalma 2-vel dekrementálódik, és az utasítás megismétlődik. Megjegyezzük, hogy ha BC tartalma az utasítás végrehajtását megelőzően zérusra lett beállítva, az utasítás 64K-szor ciklikusan megismétlődik. Minden egyes byte átvitelét követően két felfrissítési ciklus zajlik le, és ilyenkor megszakítási kérelmek is érvényre juthatnak.

Ha BC<>0:

M ciklusok: 5 T állapotok: 21 (4, 4, 3, 5, 5) 4 MHz V.i.:5,25

Ha BC=0:

M ciklusok: 4 T állapotok: 16 (4, 4, 3, 5) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a HL regiszterpár 1111H-t, a DE regiszterpár 2222H-t, a BC regiszterpár 0003H-t tartalmaz, és a memóriarekeszek tartalma a következő:

(1111H) :
(1112H) :
(1113H) :
88H
36H
A5H
 
(2222H) :
(2223H) :
(2224H) :
66H
59H
C5H

akkor az
LDIR
utasítás végrehajtásának eredményeként a regiszterpárok, és a memóriarekeszek tartalma a következőképpen alakul:

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

NEG
Művelet: A0-A
Formátum:

OP kód

Operandusok
 
NEG
-
1
1
1
0
1
1
0
1
ED
0
1
0
0
0
1
0
0
44

Leírás:
Az utasítás az akkumulátor tartalmának 2-es komplemensét képezi, majd ezt az eredményt az akkumulátorba tölti. Ez a művelet azt jelenti, hogy az akkumulátor tartalma 0-ból kivonódik. Megjegyezzük, hogy 80H eredeti akkumulátor tartalom esetén az utasítás végrehajtása után az akkumulátor tartalma értelemszerűen változatlan marad.

M ciklusok: 5 T állapotok: 8 (4, 4) 4 MHz V.i.:2,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik.
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébkért törlődik
P/V:
1-es állapotba kerül, ha a működés előtt az akkumulátor tartalma 80H volt; egyébként törlődik
N:
1-es állapotba kerül
C:
1-es állapotba kerül, ha a műkötés előtt az akkumulátor tartalma nem 00H volt; egyébként törlődik

Példa:
Ha az akkumulátor tartalma:

1
0
0
1
1
0
0
0

akkor a
NEG
utasítás végrehajtásának eredményeként az akkumulátor tartalma:

0
1
1
0
1
0
0
0

lesz.


NOP
Művelet: nincsen
Formátum:

OP kód

Operandusok
 
NEG
-
0
0
0
0
0
0
0
0
00

Leírás:
Az utasítás végrehajtása során a CPU semmiféle aritmetikai vagy logikai műveletet nem végez.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

 


OR s
Művelet: AA v s
Formátum:

OP kód

Operandusok
 
OR
s
OR r
1
0 1 1 0
<
r
>
 
OR n  1 1 1 1 0 1 1 0 F6
< - n - - - >  
OR (HL) 1 0 1 1 0 1 1 0 B6
OR (IX+d) 1 1 0 1 1 1 0 1 DD
1 0 1 1 0 1 1 0 B6
< - - d - - - >  
OR (IY+d) 1 1 1 1 1 1 0 1 FD
1 0 1 1 0 1 1 0 B6
< - - d - - - >  

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja, amelyek a fenti tárgykódban a következők:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

Leírás:
Az utasítás az s operandus által specifikált byte, és az akkumulátor tartalma között bitenkénti logikai VAGY kapcsolatot hoz létre, és az eredmény az akkumulátorba kerül.

Utasítás M ciklusok T állapotok 4 MHz V.i.
OR r
1
4
1,00
OR n
2
7 (4, 3)
1,75
OR (HL)
2
7 (4, 3)
1,75
OR (IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
OR (IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik.
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
törlődik

Példa:
Ha a H regiszter tartalma 48H 01001000 , és az akkumulátoré 12H (00010010) , akkor az
OR H
utasítás végrehajtásának eredményeként az akkumulátor tartalma 5AH (01011010) lesz.


OTDR
Művelet: (C)(HL), BB-1, HLHL-1
Formátum:

OP kód

Operandusok
 
OTDR
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
1
0
1
1
BB

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során először a HL regiszterpár tartalma kerül a címbuszra. Az ilyen módon megcímzett memóriarekeszben lévő byte-ot a CPU átmenetileg tárolja, majd a byte számláló (B regiszter) tartalma dekrementálódik. Ezután a C regiszter tartalma a címbusz alsó nyolc bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter dekrementált tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. Ezután az előzőleg a HL tartalma által megcímzett memóriarekeszből kiolvasott, majd átmenetileg a CPU-ban tárolt byte a C regiszter tartalma által kijelölt periféria regiszterbe töltődik. Ezt követően e HL regiszterpár tartalma dekrementálódik, és ha a már korábban dekrementált B regiszter tartalom nem zérus, akkor a programszámláló tartalma 2-vel dekrementálódik, és az utasítás megismétlődik. Ha viszont B tartalma zérus, az utasítás befejeződik. Megjegyezzük, hogy ha az utasítás végrehajtását megelőzően B tartalma 0-ra lett beállítva, 256 byte adat kitöltését végzi az utasítás. Minden egyes byte-átvitelt követően két memóriafrissítési ciklus zajlik le, és ugyanakkor programmegszakítási kérelmek is érvényre juthatnak.

Ha B<>0:

M ciklusok: 5 T állapotok: 21 (4, 5, 3, 4, 5) 4 MHz V.i.:5,25

Ha B=0:

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07H, a B regiszteré 03H, a HL regiszterpár 1000H-t tartalmaz, és a memóriarekeszek tartalma a következő:

Rekesz Tartalom
0FFEH
0FFFH
1000H
51H
A9H
03H

akkor az
OTDR
utasítás végrehajtása után a, HL regiszterpár tartalma 0FFDH lesz, a B regiszter 0-t fog tartalmazni, és az eredetileg a memóriában lévő byte sorozat a következő sorrendben a 07H című periféria regiszterbe töltődik:
03H
A9H
51H


OTIR
Művelet: (C)(HL), BB-1, HLHL+1
Formátum:

OP kód

Operandusok
 
OTIR
-
1
1
1
0
1
1
0
1
ED
1
0
1
1
0
0
1
1
B3

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során először a HL regiszterpár tartalma kerül a címbuszra. Az ilyen módon megcímzett memóriarekeszben lévő byte-ot a CPU átmenetileg tárolja, majd a byte számláló (B regiszter) tartalma dekrementálódik. Ezután a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter dekrementált tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. Ezután az előzőleg a HL regiszterpár tartalma által megcímzett memóriarekeszből kiolvasott, majd átmenetileg a CPU-ban tárolt byte a C regiszter tartalma által kijelölt periféria regiszterbe töltődik. Ezt követően a HL regiszterpár tartalma inkrementálódik, és ha a már korábban dekrementált B regiszter tartalom nem zérus, akkor a, programszámláló tartalma 2-vel dekrementálódik, és az utasítás megismétlődik. Ha viszont L tartalma zérus, az utasítás befejeződik. Megjegyezzük, hogy ha az utasítás végrehajtását megelőzően B tartalma 0-ra lett beállítva, 256 byte adat kitöltését végzi az utasítás. Minden egyes byte-átvitelt követően két memóriafrissítési ciklus zajlik le, és ugyanekkor programmegszakítási kérelmek is érvényre juthatnak.

Ha B<>0:

M ciklusok: 5 T állapotok: 21 (4, 5, 3, 4, 5) 4 MHz V.i.:5,25

Ha B=0:

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07h, a B regiszteré 03H, a HL regiszterpár 1000H-t tartalmaz, és a memóriarekeszek tartalma a következő:

Rekesz Tartalom
1000H
1001H
1002H
51H
A9H
03H

akkor az
OTIR
utasítás végrehajtása után a HL regiszterpár tartalma 1003H lesz, a B regiszter 0-t fog tartalmazni, és az eredetileg a memóriában lévő byte-sorozat a következő sorrendben a 07H című periféria regiszterbe töltődik:
51H
A9H
03H


OUT (C),r
Művelet: (C)r
Formátum:

OP kód

Operandusok
 
OUT
(C),r
1
1
1
0
1
1
0
1
ED
0
1
<
r
>
0
0
1
 

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során a C regiszter tartalma, a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a B regiszter tartalma a címbusz felső 8 bitjén (A8-tól A15-ig) van jelen. Ezután az r regiszterben lévő byte az adatbuszra kerül, és a C regiszter tartalma által kiválasztott periféria regiszterbe töltődik. Az r regiszter kódja a CPU bármely regiszterét az alábbi táblázat szerint azonosítja:

Regiszter
r
A
111
B
000
C
001
D
010
E
011
H
100
L
101

 

M ciklusok: 3 T állapotok: 12 (4, 4, 4) 4 MHz V.i.:3,00

Példa:
Ha a C regiszter tartalma 01H, és a D regiszteré 5AH, akkor az
OUT (C),D
utasítás végrehajtásának eredményeként az 5AH byte a 01H című periféria regiszterbe töltődik.


OUT (n),A
Művelet: (n)A
Formátum:

OP kód

Operandusok
 
OUT
(n),A
1
1
0
1
0
0
1
1
D3
<
-
-
n
-
-
-
>
 

Leírás:
A végrehajtás során az utasításnak a címbusz alacsony helyértékű bitjeire (A0-tól A7-ig) helyezett n operandusa a 256 lehetséges periféria regiszter egyikét választja ki. Ugyanekkor az akkumulátor (A regiszter) tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. Az akkumulátorban lévő byte az adatbuszra kerül, és a kiválasztott periféria regiszterbe töltődik.

M ciklusok: 3 T állapotok: 11 (4, 3, 4) 4 MHz V.i.:2,75

Példa:
Ha az akkumulátor tartalma 23H, az
OUT (01H),A
utasítás végrehajtásának eredményeként a 23H byte töltődik a 01H című periféria regiszterbe.


OUTD
Művelet: (C)(HL), BB-1, HLHL-1
Formátum:

OP kód

Operandusok
 
OUTD
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
1
0
1
1
AB

Leírás:
A periféria regisztert közvetve, regiszter indirekt címzési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során először a HL regiszterpár tartalma kerül a címbuszra. Az ilyen módon megcímzett memóriarekeszben lévő byte-ot a CPU átmenetileg tárolja, majd a byte számláló (B regiszter) tartalma dekrementálódik. Ezután a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria regiszter egyikét. Ugyanekkor a byte számlálóként felhasználható B regiszter dekrementált tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. Ezután az előzőleg a HL tartalma által megcímzett memóriarekeszekből kiolvasott, majd átmenetileg a CPU-ban tárolt byte a C regiszter tartalma által kijelölt periféria regiszterbe töltődik. Végül a HL regiszterpár tartalma dekrementálódik.

M ciklusok: 4 T állapotok: 16 (4, 5, 3, 4) 4 MHz V.i.:4,00

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha B-1=0; egyébként törlődik
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tatalma 07H, a B regiszteré 10H, a HL regiszterpár tartalma 1000H, és az 1000H című memóriarekesz tartalma 59H, akkor az
OUTD
utasítás végrehajtásának eredményeként a B regiszter 0FH-t, a HL regiszterpár 0FFFH-t fog tartalmazni, és az 59H töltődik a 07H című periféria regiszterbe.


OUTI
Művelet: (C)(HL), BB-1, HLHL+1
Formátum:

OP kód

Operandusok
 
OUTI
-
1
1
1
0
1
1
0
1
ED
1
0
1
0
0
0
1
1
A3

Leírás:
A periféria regisztert közvetve, regiszter indirekt cinkési móddal címző I/O utasítás, amelynél a periféria regiszter címét a C regiszter tartalmazza. A végrehajtás során először a HL regiszterpár tartalma kerül a címbuszra. Az ilyen módon megcímzett memóriarekeszben léve byte-ot a CPU átmenetileg tárolja,, majd a byte számláló (B regiszter) tartalma dekrementálódik. Ezután a C regiszter tartalma a címbusz alsó 8 bitjére (A0-tól A7-ig) kerül, és kiválasztja a 256 lehetséges periféria-regiszter egyikét. Ugyanekor a byte számlálóként felhasználható B regiszter dekrementált tartalma a címbusz magasabb helyértékű 8 bitjén (A8-tól A15-ig) van jelen. Ezután az előzőleg a HL tartalma által megcímzett memóriarekeszből kiolvasott, majd átmenetileg a CPU-ban tárolt byte a C regiszter tartalma által kijelölt periféria regiszterbe töltődik. Végül a HL regiszterpár tartalma inkrementálódik.

A jelzőbit regiszter érintett bitjei:

S:
ismeretlen
Z:
1-es állapotba kerül, ha B-1=0; egyébként törlődik
H:
ismeretlen
P/V:
ismeretlen
N:
1-es állapotba kerül
C:
változatlan marad

Példa:
Ha a C regiszter tartalma 07H, a B regiszteré 10H, a HL regiszterpár 1000H-t tartalmaz, és az 1000H című memóriarekesz tartalma 59H, akkor az
OUTI
utasítás végrehajtásának eredményeként a B regiszter 0FH-t, a HL regiszterpár 1001H-t fog tartalmazni, és az 59H töltődik a, 07H című periféria regiszterbe.


POP IX
Művelet: IXH(SP+1), IXL(SP)
Formátum:

OP kód

Operandusok
 
POP
IX
1
1
0
1
1
1
0
1
DD
1
1
1
0
0
0
0
1
E1

Leírás:
Az utasítás az operatív memóriában elhelyezkedő LIFO veremtáron POP műveletet (a veremtár tetején elhelyezkedő, azaz oda utoljára betöltött 2 byte kiemelése) végez, és ennek eredményét az IX index regiszterbe tölt i. A veremtár aktuális mutató címet az SP reiszterpár tartalmazza. Az utasítás először az SP tartalma által kijelölt memóriarekesz tartalmát tölti az index regiszter alacsonyabb helyértékű byte-jába, majd az SP inkrementálódik, és az ilyen módon kijelölt következő memóriarekesz tartalma az IX index regiszter magasabb helyértékű byte-jába másolódik. Ezután az SP ismét inkrementálódik.

M ciklusok: 4 T állapotok: 14 (4, 4, 3, 3) 4 MHz V.i.:3,50

Példa:
Ha a veremtár mutató (SP) 1000H-t, az 1000H című memóriarekesz 55H-t, és az 1001H című memóriarekesz 33H-t tartalmaz, a
POP IX
utasítás végrehajtása után az IX index regiszter 3355H-t, és az SP 1002H-t fog tartalmazni.


POP IY
Művelet: IYH(SP+1), IYL(SP)
Formátum:

OP kód

Operandusok
 
POP
IY
1
1
1
1
1
1
0
1
FD
1
1
1
0
0
0
0
1
E1

Leírás:
Az utasítás az operatív memóriában elhelyezkedő LIFO veremtáron POP műveletet (a veremtár tetején elhelyezkedő, azaz az oda utoljára betöltött 2 byte kiemelése) végez, és ennek eredményét az IY index regiszterbe tölti. A veremtár aktuális tetejére mutató címet az SP regiszterpár tartalmazza. Az utasítás először az SP tartalma által kijelölt memóriarekesz tartalmát tölti az index regiszter alacsonyabb helyértékű byte-jába, majd az SP inkrementálódik, és az ilyen módon kijelölt következő memóriarekesz tartalma az IY index regiszter magasabb helyértékű byte-jába másolódik. Ezután az SP ismét inkrementálódik.

M ciklusok: 4 T állapotok: 14 (4, 4, 3, 3) 4 MHz V.i.:3,50

Példa:
Ha az SP regiszterpár 1000H-t, az 1000H című memóriarekesz 55H-t, és az 1001H című memóriarekesz 33H-t tartalmaz, a
POP IY
utasítás végrehajtása után az IY index regiszter 3355H-t, és az SP 1002H-t fog tartalmazni.


POP qq

Művelet: qqH(SP+1), qq L(SP)

Formátum:

OP kód

Operandusok
 
POP
qq
1
1
q
q
0
0
0
1

Leírás:
Az utasítás az operatív memóriában elhelyezkedő LIFO veremtáron POP műveletet végez, és ennek eredményét a qq regiszterpárba tölti. A veremtár aktuális tetejére mutató címet az SP regiszterpár tartalmazza. Az utasítás először az SP tartalma által kijelölt memóriarekesz tartalmát tölti qq alacsonyabb helyértékű byte-jába, majd az SP inkrementálódik, és az ilyen módon kijelölt következő memóriarekesz tartalma a qq regiszterpár magasabb helyértékű byte-jába másolódik. Ezután az SP ismét inkrementálódik. A qq operandus a BC, DE, HL vagy AF regiszterpárokat definiálja, amelyek tárgykódban a következők:

Regiszterpár
dd
BC
00
DE
01
HL
10
AF
11

 

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,50

Példa:
Ha az SP regiszterpár 1000H-t, az 1000H című memóriarekesz 55H-t, és az 1001H című memóriarekesz 33H-t tartalmaz, a
POP HL
utasítás végrehajtásának eredményeként a HL regiszterpár tartalma 3355H, az SP tartalma pedig 1002H lesz.


PUSH IX
Művelet: (SP-2)IXL, (SP-1)IXH
Formátum:

OP kód

Operandusok
 
PUSH
IX
1
1
0
1
1
1
0
1
DD
1
1
1
0
0
1
0
1
E5

Leírás:
Az utasítás az IX index regiszter tartalmát PUSH művelettel (2 byte betöltése a veremtár tetejére) az operatív memóriában elhelyezkedő LIFO veremtárba helyezi. A veremtár aktuális tetejére mutató címet az SP regiszterpár tartalmazza. Az utasítás először az SP tartalmát dekrementálja, és az index regiszter magasabb helyértékű 8 bitjét az így nyert cím által kijelölt memóriarekeszbe tölti, majd az SP ismét dekrementálódik, és az index regiszter alacsonyabb helyértékű byte-ja az SP regiszterpárban így kapott cím által definiált memóriarekeszbe másolódik.

M ciklusok: 3 T állapotok: 15 (4, 5, 3, 3) 4 MHz V.i.:3,75

Példa:
Ha, az IX index regiszter 2233H-t, és az SP regiszterpár 1007H-t tartalmaz, a
PUSH IX
utasítás végrehajtásának eredményeként az 1006H című memóriarekesz 22H-t, az 1005H című 33H-t fog tartalmazni, és az SP tartalma 1005H lesz.


PUSH IY
Művelet: (SP-2)IYL, (SP-1)IYH
Formátum:

OP kód

Operandusok
 
PUSH
IY
1
1
1
1
1
1
0
1
FD
1
1
1
0
0
1
0
1
E5

Leírás:
Az utasítás az IY index regiszter tartalmát PUSH művelettel (2 byte betöltése a veremtár tetejére) az operatív memóriában elhelyezkedő LIFO veremtárba helyezi. A veremtár aktuális tetejére mutató címet az SP regiszterpár tartalmazza. Az utasítás először az SP tartalmát dekrementálja, és az index regiszter magasabb helyértékű 8 bitjét az így nyert cím által kijelölt memóriarekeszbe tölti, majd az SP ismét dekrementálódik, és az index regiszter alacsonyabb helyértékű byte-ja az SP regiszterpárban így kapott cím által definiált memóriarekeszbe másolódik.

M ciklusok: 3 T állapotok: 15 (4, 5, 3, 3) 4 MHz V.i.:3,75

Példa:
Ha az IY index regiszter 2233H-t, és az SP regiszterpár 1007H-t tartalmaz, a
PUSH IY
utasítás végrehajtásának eredményeként az 1006H című memóriarekesz 22H-t, az 1005H című 33H-t fog tartalmazni, és az SP tartalma 1005H lesz.


PUSH qq
Művelet: (SP-2)qqL, (SP-1)qqH
Formátum:

OP kód

Operandusok
 
PUSH
qq
1
1
q
q
0
1
0
1

Leírás:
Az utasítás a qq regiszterpár tartalmát PUSH művelettel (2 byte betöltése a veremtár tetejére) az operatív memóriában elhelyezkedő LIFO veremtárba helyezi. A veremtár aktuális tetejére mutató címet az SP regiszterpár tartalmazza. Az utasítás először az SP tartalmát dekrementálja, és a qq, regiszterpár magasabb helyértékű 8 bitjét az így nyert cím által kijelölt memóriarekeszbe tölti, majd az SP ismét dekrementálódik, és a qq regiszterpár alacsonyabb helyértékű byte-ja az SP-ben így kapott cím által definiált memóriarekeszbe másolódik. A qq operandus a BC, DE, HL vagy AF regiszterpárokat jelenti, amelyek tárgykódban a következők:

Regiszterpár
dd
BC
00
DE
01
HL
10
AF
11

 

M ciklusok: 3 T állapotok: 11 (5, 3, 3) 4 MHz V.i.:2,75

Példa:
Ha az AF regiszterpár tartalma 2233H, és az SP regiszterpár 1007H-t tartalmaz, a
PUSH AF
utasítás végrehajtásának eredményeként az 1006H című memóriarekesz 22H-t, az 10O5H című memóriarekesz 33H-t, és az SP regiszterpár 1005H-t fog tartalmazni.


RES b,m
Művelet: sb0
Formátum:

OP kód

Operandusok
 
RES
b,m

A b operandus az m operaadus (r, (HL), (IX+d) vagy (IY+d) bármelyike) által meghatározott byte egy bitjét (7-től 0-ig) definiálja, amint azt az ezzel az utasítással analóg SET utasításoknál meghatároztuk. Ezek a különböző lehetséges OP kód-operandus kombinációk a tárgykódban a következők lehetnek:

RES b,r
1
1
0
0
1
0
1
1
CB
1
0
<
b
>
<
r
>
 
RES b,(HL)
1
1
0
0
1
0
1
1
CB
1
0
<
b
>
1
1
0
 
RES b,(IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
1
0
<
b
>
1
1
0
 
RES b,(IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
1
0
<
b
>
1
1
0
 
Törölt bit
b
 
Regiszter
r
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
 
B
C
D
E
H
L
A
000
001
010
011
100
101
111

Leírás:
Az m operandus által meghatározott byte-nak a b operaadus által meghatározott bitje törlődik.

Utasítás M ciklusok T állapotok 4 MHz V.i.
RES r
2
8 (4 , 4)
2,00
RES (HL)
4
15 (4, 4, 4, 3)
3,75
RES (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
RES (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

Példa:
A
RES 6,D
utasítás végrehajtásának eredményeként a D regiszter 6-os bitje törlődik. (A D regiszter 0-ás bitje a legalacsonyabb helvértékű bit).


RET
Művelet: PCL(SP), PCH(SP+1)
Formátum:

OP kód

Operandusok
 
RET
-
1
1
0
0
1
0
0
1
C9

Leírás:
Az utasítás a vezérlést az eredeti programnak adja vissza. Végrehajtása sarán az előzőleg CALL utasítással a veremtár tetejére mentett eredeti programszámláló (PC) tartalmat POP művelettel kiemeli, és visszatölti a PC-be. Végrehajtásakor először az SP tartalma által kijelölt memóriarekeszben lévő byte másolódik át a PC alacsonyabb helyértékű 8 bitjébe, majd az SP inkrementálásával kapott memóriacímen elhelyezkedő byte töltődik a PC magasabb helyértékű 8 bitjébe. (Az SP másodszor inkrementálódik). A CPU következő gépi ciklusa a következő OP kódot már az ilyen módon a PC-ben jelenlévő cím által meghatározott memóriarekeszből kapja.

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,55

Példa:
Ha a programszámláló tartalma 3535H, az SP tartalma 2000H, a 2000H című memóriarekesz tartalma B5H, és a 2001H című memóriarekeszé 18H, akkor a
RET
utasítás végrehajtása, után az SP tartalma 2002H, és a programszámláló tartalma 18B5H lesz, amely értelemszerűen a következő végrehajtandó OP kód címét jelenti.


RET cc
Művelet: Ha cc igaz: PCL(SP), PCH(SP+1)
Formátum:

OP kód

Operandusok
 
RET
cc
1
1
<
cc
>
0
0
0

Leírás:
Ha a cc feltétel teljesül, az utasítás a vezérlést az eredeti programnak adja vissza. Végrehajtása során az előzőleg CALL utasítással a veremtár tetejére mentett eredeti programszámláló (PC) tartalmat POP művelettel kiemeli, és visszatölti a PC-be. Végrehajtáskor először az SP tartalma által kijelölt memóriarekeszben lévő byte másolódik át a PC alacsonyabb helyértékű 8 bitjébe, majd az SP inkrementálásával kapott memóriacímen elhelyezkedő byte töltődik a PC magasabb helyértékű 8 bitjébe. (Az SP másodszor inkrementálódik). A CPU következő gépi ciklusa a következő OP kódot már az ilyen módon a PC-ben jelenlévő cím, által meghatározott memóriarekeszből kapja. Ha a cc feltétel nem teljesül, a PC a szokott módon inkrementálódik, és a program a sorrendben következd utasítás végrehajtásával folytatódik. A cc feltétel programozása az F regiszter valamelyik bitjének kijelölésével történhet. Az ilyen módon kijelölhető 8 feltételt az alábbi táblázat definiálja:

cc Feltétel Aktuális bit
000
001
010
011
100
101
110
111
NZ
Z
NC
C
PO
PE
P
M
nem zérus
zérus
nincs átvitel
átvitel
páratlan paritás
páros paritás
pozitív előjel
negatív előjel
Z
Z
C
C
P/V
P/V
S
S

Ha cc teljesül:

M ciklusok: 3 T állapotok: 10 (4, 3, 3) 4 MHz V.i.:2,55

Ha cc nem teljesül:

M ciklusok: 1 T állapotok: 5 4 MHz V.i.:1,25

Példa:
Ha az S bit 1-es állapotban van, a, programszámláló tartalma 3535H, az SP tartalma 2000H, a 2000H című memóriarekeszben lévő byte B5H, és a 2001H című memóriarekesz tartalma 18H, akkor a
RET M
utasítás végrehajtásának eredményeként az SP tartalma 2002H lesz, a programszámláló tartalma pedig 18B5H, amely értelemszerűen a következő végrehajtandó OP kód címét jelenti.


RETI
Művelet: Visszatérés programmegszakításból
Formátum:

OP kód

Operandusok
 
RETI
-

Leírás:
Az utasítást megszakítást kiszolgáló rutin végén használjuk azért, hogy:

  1. a programszámláló (PC) eredeti tartalmát (a RET utasításhoz hasonlóan) visszaállítsuk
  2. egy I/O eszköz számára jelezzük, hogy a programmegszakítást kiszolgáló rutin befeleződött. A RETI utasítás lehetővé teszi a programmegszakítások egymásba ágyazását, biztosítva, hogy a magasabb prioritású programmegszakítási kérések felfüggesszék az alacsonyabb prioritású kiszolgáló rutinok futását. Az IFF2 tartalma visszatöltődik az IFF1 megszakítás engedélyező flip-flopba.
M ciklusok: 4 T állapotok: 14 (4, 4, 3, 3) 4 MHz V.i.:3,50

Példa:
Adott két megszakítást okozó eszköz, A és E, amelyek úgy vannak, megszakítási láncba kapcsolva, hogy A-nak nagyobb a prioritása.

B programmegszakítást generál, ami elfogadásra is kerül. (B-nek IEO engedélyező kimenete törlődik, és ezáltal mindaddig, amíg B kiszolgálása tart, az összes alacsonyabb prioritású megszakításkérés blokkolódik). Ezután A kér programmegszakítást, ezáltal felfüggesztve B kiszolgálását. (A-nak az IE0 programmegszakítást engedélyező kimenete törlődik, jelezve, hogy egy magasabb prioritású eszköz kiszolgálása van folyamatban). Az A rutin befejezésekor végrehajtott RETI utasítás ismét 1-es állapotba helyezi A-nak a programmegszakítást engedélyező IEO kimenetét, és így lehetővé teszi, hogy a B-t kiszolgáló rutin folytatódjék. A B rutin befejezésekor kiadott újabb RETI utasítás a B eszköz megszakítást engedélyező IEO kimenetét is l-es állapotba teszi, és ilyen módon biztosítja az alacsonyabb prioritású programmegszakítások érvényre jutását is.


RETN
Művelet: Visszatérés nem maszkolható programmegszakításból
Formátum:

OP kód

Operandusok
 
RETN
-
1
1
1
0
1
1
0
1
ED
0
1
0
0
0
1
0
1
45

Leírás:
A nem maszkolható programmegszakítást kiszolgáló rutinok végén használt utasítás. Olyan feltétel nélküli vezérlésátadást eredményez, amely funkciójában a RET utasítással azonos. A programszámláló (PC) korábbi veremtárba mentett tartalma POP művelettel kiemelődik, és a PC-be kerül vissza. Az SP tartalma által kijelölt memóriarekeszben lévő byte a PC alacsonyabb helyértékű 8 bitjébe töltődik, majd az SP inkrementálásával kijelölt memóriarekesz 8 bitje a PC magasabb helyértékű byte-jába másolódik, és az SP ismét inkrementálódik. A vezérlés ilyen módon visszaadódik az eredeti programhoz, és a CPU következő gépi ciklusa a következő OP kódot már a PC által kijelölt memóriarekeszből fogja kiemelni. A vémrehajtás során IFF2 tartalma visszatöltődik IFF1-be, és így az NMI (nem maszkolható megszakítás) elfogadását megelőző állapotot veszi fel.

M ciklusok: 4 T állapotok: 14 (4, 4, 3, 3) 4 MHz V.i.:3,50

Példa:
Ha egy nem maszkolható megszakítás (NMI) vételekor az SP tartalma 1000H, és a programszámláló 1A45H-t tartalmaz, a CPU a következő utasítást figyelmen kívül hagyja, és helyette egy, a 0066H címre irányuló "restart" műveletet hajt végre. Ekkor a programszámláló 1A45H-s aktuális tartalma a külső veremtár 0FFFH és 0FFEH című rekeszeibe kerül. Az első veremtár a PC magasabb helyértékű byte-ját, míg a második az alacsonyabb helyértékű 8 bitet tartalmazza, és a programszámlálóba a 0066H cím. töltődik. Ezen a címen egy olyan megszakítás kiszolgáló rutin kezdődik, amely RETN utasítással fejeződik be. A RETN végrehajtásakor az eredeti programszámláló tartalom a veremtárból kiemelődik (elsőként az alacsonyabb helyértékű byte), és ezáltal az SP tartalma újra az eredeti 1000H értéket veszi fel. A program futása ott folytatódik, ahol abbamaradt, vagyis az 1A45H címen elhelyezett OP kód kiemelésével.


RL m
Művelet:
Formátum:

OP kód

Operandusok
 
RL
m

Az m operandus r,(HL), (IX+d) vagy (IY+d) bórmelyike lehet, hasonlóan, mint az RLC utasításoknál. A lehetséges 0P kód-operandus kombinációk tárgykódban a következők:

RL r
1
1
0
0
1
0
1
1
CB
0
0
0
1
0
<
r
>
 
RL (HL)
1
1
0
0
1
0
1
1
CB
0
0
0
1
0
1
1
0
16
RL (IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
1
0
1
1
0
16
RL (IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
1
0
1
1
0
16

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja, amelyek tárgykódban a, következők:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az m operandus tartalma a CY átvitel biten (a jelzőbit regiszter C bitje) keresztül egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe másolódik; az l-es bit előző tartalma pedig a 2-es bitbe, stb. A 7-es bit az átvitel bitbe, és az átvitel bit előző tartalma. pedig a 0-ás bitbe másolódik. (A 0-ás bit az m operandus legkisebb helyértékű bitje).

Utasítás M ciklusok T állapotok 4 MHz V.i.
RL r
2
8 (4 , 4)
2,00
RL (HL)
4
15 (4, 4, 4, 3)
3,75
RL (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
RL (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha, az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az m operandus által meghatározott byte 7-es bitjének tartalmát veszi fel

Példa:
Ha a D regiszter, és az átvitel bit tartalma

C
7
6
5
4
3
2
1
0
0
1
0
0
0
1
1
1
1

az
RL D
utasítás végrehajtásának eredményeként a D regiszter, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
0
0
1
1
1
1
0

RLA
Művelet:
Formátum:

OP kód

Operandusok
 
RLA
-
0
0
0
1
0
1
1
1
17

Leírás:
Az akkumulátor (A regiszter) tartalma a CY átvitel biten (C bit) keresztül egy helyértékkel balra tolódik. A 0-ás bit tartalma az l-es bitbe kerül, az 1-es bit előző tartalma pedig, a 2-es bitbe, stb. A 7-es bit az átvitel bitbe, az átvitel bit előző tartalma pedig a 0-ás bitbe másolódik. A 0-ás bit a legalacsonyabb helyértékű bit.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
változatlan marad
N:
törlődik
C:
az akkumulátor 7-es bitjének tartalmát veszi fel

Példa:
Ha az akkumulátor, és az átvitel bit tartalma

C
7
6
5
4
3
2
1
0
0
1
1
1
0
1
1
0
1

akkor az
RLA
utasítás végrehajtásának eredményeként az akkumulátor, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
1
1
1
0
1
1
0

RLC (HL)
Művelet:
Formátum:

OP kód

Operandusok
 
RLC
(HL)
1
1
0
0
1
0
1
1
CB
0
0
0
0
0
1
1
0
06

Leírás:
A HL regiszterpár tartalma által specifikált memóriarekesz tartalma a CY átvitel bit (C bit) megkerülésével egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe kerül, az 1-es bit előző tartalma pedig a 2-es bitbe, stb. A 7-es bit tartalma az átvitel bitbe, és a 0-ás bitbe másolódik. A 0-ás bit a byte legkisebb helyértékű bitje.

M ciklusok: 4 T állapotok: 15 (4, 4, 4, 3) 4 MHz V.i.:3,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
a (HL) operandus által meghatározott byte 7-es bitjének tartalmát veszi fel

Példa:
Ha a HL regiszterpár tartalma 2828H, és a 2828H című memóriarekesz tartalma

7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0

Akkor az
RLC (HL)
utasítás végrehajtásának eredményeként a 2828H című memóriarekesz, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0
1

RLC (IX+d)
Művelet:
Formátum:

OP kód

Operandusok
 
RLC
(IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
0
0
1
1
0
06

Leírás:
Az IX index regiszter tartalma, és a 2-es komplemensű kódban értelmezett d egész szám összege által specifikált memóriarekesz tartalma a CY átvitel bit (C bit) megkerülésével egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe kerül, az 1-es bit előző tartalma pedig a 2-es bitbe, stb. A 7-es bit tartalma, az átvitel bitbe, és a 0-ás bitbe másolódik. A 0-ás bit a byte legkisebb helyértékű bitje.

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 5, 4, 3) 4 MHz V.i.:5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az (IX+d) által kijelölt byte 7-es bitjének tartalmát veszi fel

Példa:
Ha az IX index regiszter tartalma 1000H, és az 1002H című memóriarekesz tartalma

7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0

akkor az
RLC (IX+2H)
utasítás végrehajtása után az 1002H című memóriarekesz, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0
1

RLC (IY+d)
Művelet:
Formátum:

OP kód

Operandusok
 
RLC
(IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
0
0
1
1
0
06

Leírás:
Az IY index regiszter tartalma, és a 2-es komplemensű kódban értelmezett d egész szám összege által specifikált memóriarekesz tartalma a CY átvitel bit (C bit) megkerülésével egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe kerül, az 1-es bit előző tartalma pedig a 2-es bitbe, stb. A 7-es bit tartalma az átvitel bitbe, és a 0-ás bitbe másolódik. A 0-ás bit a byte legkisebb helyértékű bitje.

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 5, 4, 3) 4 MHz V.i.:5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az (IY+d) által kijelölt byte 7-es bitjének tartalmát veszi fel

Példa:
Ha az IY index regiszter tartalma 1000H, és az 1002H című memóriarekesz tartalma

7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0

akkor az
RLC (IY+2H)
utasítás végrehajtásának eredményeként az 1002H című memóriarekesz, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0
1

RLC r
Művelet:
Formátum:

OP kód

Operandusok
 
RLC
r
1
1
0
0
1
0
1
1
CB
0
0
0
0
0
<
r
>
 

Leírás:
Az r operandus által meghatározott regiszter tartalma a CY átvitel bit megkerülésével egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe kerül, az 1-es bit előző tartalma pedig a 2-es bitbe, stb. A 7-es bit tartalma az átvitel bitbe, és a 0-ás bitbe kerül. Az r operandus tárgykódban a következő lehet:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Megjegyzés: A 0-ás bit a byte legkisebb helyértékű bitje.

M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.:2,00

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az r által specifikált regiszter 7-es bitjének tartalmát veszi fel

Példa:
Ha az r regiszter tartalma

7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0

Akkor az
RLC r
utasítás végrehajtásának eredményeként az r regiszter, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0
1

RLCA
Művelet:
Formátum:

OP kód

Operandusok
 
RLCA
-
0
0
0
0
0
1
1
1
07

Leírás:
Az akkumulátor (A regiszter) tartalma a CY átvitel bit megkerülésével egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe kerül, az l-es bit előző tartalma a 2-es bitbe, stb. A 7-es bit tartalma az átvitel bitbe, és a 0-ás bitbe másolódik. (A 0-ás bit a byte legkisebb helyértékű bitje).

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
változatlan marad
N:
törlődik
C:
az akkumulátor 7-es bitjének tartalmát veszi fel

Példa:
Ha az akkumulátor tartalma

7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0

akkor az
RLCA
utasítás végrehajtásának eredményeként az akkumulátor, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0
1

RLD
Művelet:
Formátum:

OP kód

Operandusok
 
RLD
-
1
1
1
0
1
1
0
1
ED
0
1
1
0
1
1
1
1
6F

Leírás:
A HL tartalma által specifikált memóriarekesz négy alacsonyabb helyértékű bitjének (3, 2, 1 és 0 bit) tartalma ugyanezen byte négy magasabb helyértékű (7, 6, 5 és 4) bitjébe töltődik. A magasabb helyértékű négy bit eredeti tartalma az akkumulátor (A regiszter) alacsonyabb helyértékű négy bitjébe töltődik. Az akkumulátor alacsonyabb helyértékű négy bitjének eredeti tartalma viszont a HL tartalma által specifikált memóriarekesz alacsonyabb helyértékű négy bitjébe kerül. Az akkumulátor magasabb helyértékű négy bitjének tartalma változatlan marad.

M ciklusok: 5 T állapotok: 18 (4, 4, 3, 4, 3) 4 MHz V.i.:4,50

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha. a művelet után az akkumulátor tartalma negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha a művelet után az akkumulátor tartalma nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül, ha az akkumulátor tartalma páros paritású a művelet után; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a HL regiszterpár tartalma 5000H, az akkumulátor, és az 5000H című memóriarekesz tartalma pedig

7
6
5
4
3
2
1
0
Accumulator
0
1
1
1
1
0
1
0

 

7
6
5
4
3
2
1
0
(5000H)
0
0
1
1
0
0
0
1

akkor az
RLD
utasítás végrehajtásának eredményeként az akkumulátor, és az 5000H című memóriarekesz tartalma a következő lesz:

7
6
5
4
3
2
1
0
Accumulator
0
1
1
1
0
0
1
1

 

7
6
5
4
3
2
1
0
(5000H)
0
0
0
1
1
0
1
0

 


RR m
Művelet:
Formátum:

OP kód

Operandusok
 
RR
m

Az m operandus r, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgymint az analóg RLC utasításoknál A különböző lehetséges OP kód-operandus kombinációk tárgykódban a következők lehetnek:

RR r
1
1
0
0
1
0
1
1
CB
0
0
0
1
1
<
r
>
 
RR (HL)
1
1
0
0
1
0
1
1
CB
0
0
0
1
1
1
1
0
1E
RR (IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
1
1
1
1
0
1E
RR (IY+d)
0
0
0
1
1
1
1
0
1E
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
1
1
1
1
0
1E

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja a következő módon:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az m operandus tartalma a CY átvitel biten keresztül egy helyértékkel jobbra tolódik. A 7-es bit tartalma a 6-os bitbe kerül, a 6-os bit előző tartalma pedig az 5-ös bitbe, stb. A 0-ás bit tartalma az átvitel bitbe, az átvitel bit előző tartalma pedig a 7-es bitbe kerül. A 0-ás bit a byte legkisebb helyértékű bitje.

Utasítás M ciklusok T állapotok 4 MHz V.i.
RR r
2
8 (4, 4)
2,00
RR (HL)
4
15 (4, 4, 4, 3)
3,75
RR (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
RR (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
A jelzőbit regiszter érintett bitjei:
S:
1-es állapotba kerül, ha. a művelet után az akkumulátor tartalma negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha a művelet után az akkumulátor tartalma nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetében; egyébként törlődik
N:
törlődik
C:
az m operandus által meghatározott byte 0-ás bitjének tartalmát veszi fel

Példa:
Ha a HL regiszterpár tartalma 4343H, és a 4343H című memóriarekesz, valamint az átvitel bit tartalma

7
6
5
4
3
2
1
0
C
1
1
0
1
1
1
0
1
0

akkor az
RR (HL)
utasítás végrehajtásának eredményeként a 4343H című memóriarekesz, és az átvitel bit tartalma a következő lesz:

7
6
5
4
3
2
1
0
C
0
1
1
0
1
1
1
0
1

 


RRA
Művelet:
Formátum:

OP kód

Operandusok
 
RRA
-
0
0
0
1
1
1
1
1
1F

Leírás:
Az akkumulátor (A regiszter) tartalma, a CY átvitel biten keresztül egy helyértékkel jobbra tolódik. A 7-es bit tartalma a 6-os bitbe kerül, a 6-os bit előző tartalma az 5-ös bitbe, stb. A 0-ás bit tartalma az átvitel bitbe, az átvitel bit előző tartalma pedig a 7-es bitbe kerül A 0-ás bit a byte legkisebb helyértékű bitje.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
változatlan marad
N:
törlődik
C:
az akkumulátor 0-ás bitjének tartalmát veszi fel

Példa:
Ha az akkumulátor, és az átvitel bit tartalma

7
6
5
4
3
2
1
0
C
1
1
1
0
0
0
0
1
0

akkor az
RRA
utasítás végrehajtásának eredményeként a akkumulátor, és az átvitel bit tartalma a következő lesz:

7
6
5
4
3
2
1
0
C
0
1
1
1
0
0
0
0
1

 


RRC m
Művelet:
Formátum:

OP kód

Operandusok
 
RRC
m

Az m operandus r, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az RLC utasításoknál. A különböző OP kód-operandus kombinációk a következők lehetnek:

RRC r
1
1
0
0
1
0
1
1
CB
0
0
0
0
1
<
r
>
 
RRC (HL)
1
1
0
0
1
0
1
1
CB
0
0
0
0
1
1
1
0
0E
RRC (IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
0
1
1
1
0
0E
RRC (IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
0
0
1
1
1
0
0E

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbi módon:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az m operandus tartalma a CY átvitel bit megkerülésével egy helyértékkel jobbra tolódik. A 7-es bit tartalma a 6-os bitbe kerül, a. 6-os bit előző tartalma pedig az 5-ös bitbe, stb. A 0-ás bit tartalma az átvitel bitbe, és a 7-es bitbe kerül. A 0-ás bit a byte legkisebb helyértékű bitje.

Utasítás M ciklusok T állapotok 4 MHz V.i.
RR r
2
8 (4, 4)
2,00
RR (HL)
4
15 (4, 4, 4, 3)
3,75
RR (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
RR (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla, egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az m operandus által meghatározott byte 0-ás bitjének tartalommát veszi fel

Példa:
Ha az A regiszter tartalma

7
6
5
4
3
2
1
0
0
0
1
1
0
0
0
1

akkor az
RRC A
utasítás végrehajtásának eredményeként az A regiszter, és az átvitel bit tartalma a következő lesz:

7
6
5
4
3
2
1
0
C
1
0
0
1
1
0
0
0
1

 


RRCA
Művelet:
Formátum:

OP kód

Operandusok
 
RRCA
-
0
0
0
0
1
1
1
1
0F

Leírás:
Az akkumulátor (A regiszter) tartalma a CY átvitel bit megkerülésével egy helyértékkel jobbra tolódik. A 7-es bit tartalma a 6-os bitbe kerül, a 6-os bit előző tartalma pedig az 5-ös bitbe, stb. A 0-ás bit tartalma az átvitel bitbe, és a 7-es bitbe kerül. A 0-ás bit a byte legkisebb helyértékű bitje.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
változatlan marad
N:
törlődik
C:
az akkumulátor 0-ás bitjének tartalmát veszi fel

Példa:
Ha az akkumulátor tartalma

7
6
5
4
3
2
1
0
0
0
0
1
0
0
0
1

akkor az
RRCA
utasítás végrehajtásnak eredményeként az akkumulátor, és az átvitel bit tartalma a következő lesz:

7
6
5
4
3
2
1
0
C
1
0
0
0
1
0
0
0
1

 


RRD
Művelet:
Formátum:

OP kód

Operandusok
 
RRD
-
1
1
1
0
1
1
0
1
ED
0
1
1
0
0
1
1
1
67

Leírás:
A HL tartalma által specifikált memóriarekesz négy alacsonyabb helyértékű bitjének (3, 2, 1 és 0 bit) tartalma az akkumulátor (A regiszter) alacsonyabb helyértékű négy bitjébe kerül. Az akkumulátor regiszter alacsonyabb helyértékű négy bitiének eredeti tartalma a HL tartalma által specifikált memóriarekesz négy magasabb helyértékű bitjébe kerül át, míg ugyanezen négy bit eredeti tartalma ennek a byte-nak a négy alacsonyabb helyértékű bitjébe töltődik át. Az akkumulátor magasabb helyértékű négy bitjének tartalma érintetlen marad.

M ciklusok: 5 T állapotok: 18 (4, 4, 3, 4, 3) 4 MHz V.i.:4,50

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha a művelet után az akkumulátor tartalma negatív, egyébként törlődik
Z:
1-es állapotba kerül, ha a művelet után az akkumulátor tartalma nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül, ha a művelet után az akkumulátor tartalma páros paritású; egyébként törlődik
N:
törlődik
C:
változatlan marad

Példa:
Ha a HL regiszterpár tartalma 5000H, és az akkumulátor, valamint az 5000H című memóriarekesz tartalma

7
6
5
4
3
2
1
0
Accumulator
1
0
0
0
0
1
0
0

 

7
6
5
4
3
2
1
0
(5000H)
0
0
1
0
0
0
0
0

Akkor az
RRD
Utasítás végrehajtása után az akkumulátor, és az 5000H című memóriarekesz tartalma a következő lesz:

7
6
5
4
3
2
1
0
Accumulator
1
0
0
0
0
0
0
0

 

7
6
5
4
3
2
1
0
(5000H)
0
1
0
0
0
0
1
0

 


RST p
Művelet: (SP-1)PCH, (SP-2)PCL, PCH0, PCLP
Formátum:

OP kód

Operandusok
 
RST
p
1
1
<
t
>
1
1
1

Leírás:
A programszámláló (PC) aktuális tartalma az operatív memóriában elhelyezkedő veremtárba kerül, majd a PC-be a p operaadus által meghatározott, az operatív memória 0-ás lapján (legalsó 256 byte-ján) lévő 8 speciális rendeltetésű memóriarekesz címének egyike töltődik.
A program végrehajtása ezután a PC megváltoztatott tartalma által specifikált OP kód kiemelésével folytatódik. A művelet végrehatása során először az SP tartalma, dekrementálódik, és a PC magasabb helyértékű byte-ja az így nyert cím által kijelölt memóriarekeszbe töltődik. Ezt az SP ismételt dekrementálása, majd a PC alacsonyabb helyértékű byte-iának az új SP tartalommal megcímzett memóriarekeszbe másolása követi. A "Restart" utasítás az alábbi táblázatban lévő 8 cím egyikére történő ugrást biztosítja. A p operandus a táblázat megfelelő t kódjával együtt alakul tárgykóddá. Megjegyzés: miután az érintett címek mindegyike a memória 0-ás lapján helyezkedik el, az utasítás végrehajtása, során a PC magasabb helyértékű byte-ja értelemszerűen 00H értéket vesz fel, míg a PC alacsonyabb helyértékű 8 bitjébe az alábbi táblázat p oszlopának megfelelő eleme másolódik:

p
t
00H
08H
10H
18H
20H
28H
30H
38H
000
001
010
011
100
101
110
111

 

M ciklusok: 3 T állapotok: 11 (5, 3, 3) 4 MHz V.i.:2,75

Példa:
Ha a programszámláló tartalma 15B3H, akkor az
RST 18H (1101111 tárgykód)
utasítás végrehajtásának eredményeként a PC a következő OP kódra mutató 0018H címet fogja tartalmazni.


SBC A,s
Művelet: AA-s-CY
Formátum:

OP kód

Operandusok
 
SBC
A,s

Az s operaadus r, n, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az ADD utasításoknál. A különböző OP kód-operandus kombinációk a következők lehetnek:

SBC A,r
1
0
0
1
1
<
r
>
 
SBC A,n
1
1
0
1
1
1
1
0
DE
<
-
-
n
-
-
-
>
 
SBC A,(HL)
1
0
0
1
1
1
1
0
9E
SBC A,(IX+d)
1
1
0
1
1
1
0
1
DD
1
0
0
1
1
1
1
0
9E
<
-
-
d
-
-
-
>
 
SBC A,(IY+d)
1
1
1
1
1
1
0
1
FD
1
0
0
1
1
1
1
0
9E
<
-
-
d
-
-
-
>
 

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbi módon:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az s operandus az átvitel bittel együtt kivonódik az akkumulátor tartalmából; és az eredmény az akkumulátorba kerül.

Utasítás M ciklusok T állapotok 4 MHz V.i.
SBC a,r
1
4
1,00
SBC A,n
2
7 (4, 3)
1,75
SBC (HL)
2
7 (4, 3)
1,75
SBC (IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
SBC (IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
1-es állapotba kerül
C:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik

Példa:
Ha az akkumulátor 16H-t tartalmaz, az átvitel bit tartalma 1, a HL regiszterpár 3433H-t, és a 3433H című memóriarekesz 05H-t tartalmaz, akkor az
SBC A,(HL)
utasítás végrehajtásának eredményeként az akkumulátor 10H-t fog tartalmazni.


SBC HL,ss
Művelet: HLHL-ss-CY
Formátum:

OP kód

Operandusok
 
SBC
HL,ss
1
1
1
0
1
1
0
1
ED
0
1
s
s
0
0
1
0
 

Leírás:
Az ss regiszterpár tartalma (a BC, DE, HL vagy SP regiszterpárok bármelyike) az átvitel bittel együtt kivonódik a. HL regiszterpár tartalmából, és az eredmény a HL-ben tárolódik, Az ss operandus tárgykódban a következő lehet:

Regiszterpár
dd
BC
00
DE
01
HL
10
AF
11

 

M ciklusok: 4 T állapotok: 15 (4, 4, 4, 3) 4 MHz V.i.:3,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
1-es állapotba kerül
C:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik

Példa:
Ha a HL regiszterpár tartalma 9999H, a DE regiszterpáré 1111H, és az átvitel bit tartalma 1, akkor az
SBC HL,DE
Utasítás végrehajtásának eredményeként a HL tartalma 8887H lesz.


SCF
Művelet: CY1
Formátum:

OP kód

Operandusok
 
SCF
-
0
0
1
1
0
1
1
1
37

Leírás:
A jelzőbit regiszter C bitje 1-es állapotba kerül.

M ciklusok: 1 T állapotok: 4 4 MHz V.i.:1,00

A jelzőbit regiszter érintett bitjei:

S:
változatlan marad
Z:
változatlan marad
H:
törlődik
P/V:
változatlan marad
N:
törlődik
C:
1-es állapotba kerül

 


SET b,(HL)
Művelet: (HL)b1
Formátum:

OP kód

Operandusok
 
SET
b,(HL)
1
1
0
0
1
0
1
1
CB
1
1
<
b
>
1
1
0
 

Leírás:
A HL regiszterpár tartalma által megcímzett memóriarekesz b operandus által kijelölt bitje (0-tól 7-es bitig bármelyik) 1-be lesz beállítva. A b operandus tárgykódban a következő lehet:

1-be állított bit
b

0
1
2
3
4
5
6
7

000
001
010
011
100
101
110
111

 

M ciklusok: 4 T állapotok: 15 (4, 4, 4, 3) 4 MHz V.i.:3,75

Példa:
Ha a HL regiszterpár tartalma 3000H, akkor a
SET 4,(HL)
utasítás végrehajtása után a 3000H című memóriarekeszben lévő 4-es bit 1-es tartalmat vesz fel. (A 3000H című memóriarekeszben a 0-ás bit a legkisebb helyértékű bit).


SET b,(IX+d)
Művelet: (IX+d)b1
Formátum:

OP kód

Operandusok
 
SET
b,(IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
1
1
<
b
>
1
1
0
 

Leírás:
Az IX regiszterpár (IX index regiszter) tartalmának a d 2-es komplemensű kódban adott egész számmal alkotott összege által kijelölt memóriarekesznek a b operandus által specifikált bitje 1-es állapotba kerül.

1-be állított bit
b

0
1
2
3
4
5
6
7

000
001
010
011
100
101
110
111

 

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 5, 4, 3) 4 MHz V.i.:5,75

Példa:
Ha az index regiszter tartalma 2000H, a
SET 0,(IX+3H)
utasítás végrehajtásának eredményeként a 2003H című memóriarekesz 0-ás bitje 1-es tartalmat vesz fel. (A 2003H című memóriarekeszben a 0-ás bit a legkisebb helyértékű bit).


SET b,(IY+d)
Művelet: (IY+d)b1
Formátum:

OP kód

Operandusok
 
SET
b,(IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
1
1
<
b
>
1
1
0
 

Leírás:
Az IY regiszterpár (IY index regiszter) tartalmának a d 2-es komplemensű kódban adott egész számmal alkotott összege által
kijelölt memóriarekesznek a b oberandus által specifikált bitje 1-es állapotba kerül. A b operaindus jelentése a következő:

1-be állított bit
b

0
1
2
3
4
5
6
7

000
001
010
011
100
101
110
111

 

M ciklusok: 6 T állapotok: 23 (4, 4, 3, 5, 4, 3) 4 MHz V.i.:5,75

Példa:
Ha az IY index regiszter tartalma 2000H, a
SET 0,(IY+3H)
utasítás végrehajtásának eredményeként a 2003H című. memóriarekesz 0-ás bitje 1-es tartalmat vesz fel. (A 2003H című memóriarekeszben a 0-ás bit a legkisebb helyértékű bit).


SET b,r
Művelet: rb1
Formátum:

OP kód

Operandusok
 
SET
b,r
1
1
0
0
1
0
1
1
CB
1
1
<
b
>
<
r
>
 

Leírás:
Az r regiszter (a B, C, D, E, H, L vagy A regiszterek bármelyike) b bitje (a 7-estől a 0-ásig bármelyik bit) 1-es állapotba kerül. A b és r operandusok jelentése:

Bit
b
Regiszter
r
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
B
C
D
E
H
L
A
000
001
010
011
100
101
111
M ciklusok: 2 T állapotok: 8 (4, 4) 4 MHz V.i.:2,00

Példa:
A
SET 4,A
utasítás végrehajtása után az A regiszter 4-es bitje 1-es tartalmat vesz fel. (A 0-ás bit a legkisebb helyértékű bit).


SLA m
Művelet:
Formátum:

OP kód

Operandusok
 
SLA
m

Az m operandus r, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az RLC utasításoknál. A különböző lehetséges 0P kód-operandus kombinációk az alábbiak:

SLA r
1
1
0
0
1
0
1
1
CB
0
0
1
0
0
<
r
>
 
SLA (HL)
1
1
0
0
1
0
1
1
CB
0
0
1
0
0
1
1
0
26
SLA (IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
1
0
0
1
1
0
26
SLA (IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
1
0
0
1
1
0
26

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az utasítás az m operandus tartalmán egy helyértékkel balra történő aritmetikai léptetést végez. A 0-ás bitbe 0 kerül, míg a 0-ás bit eredeti tartalma, az 1-es bitbe kerül, az 1-es bit eredeti tartalma a 2-es bitbe töltődik, stb. Végül a 7-es bit az átvitel bitbe kerül. A 0-ás bit a legkisebb helyértékű.

Utasítás M ciklusok T állapotok 4 MHz V.i.
SLA r
2
8 (4, 4)
2,00
SLA (HL)
4
15 (4, 4, 4, 3)
3,75
SLA (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
SLA (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az m operandus által meghatározott byte 7-es bitjének tartalmát veszi fel

Példa:
Ha az L regiszter tartalma

7
6
5
4
3
2
1
0
1
0
1
1
0
0
0
1

akkor az
SLA
utasítás végrehajtásának eredményeként az L regiszter, és az átvitel bit tartalma a következő lesz:

C
7
6
5
4
3
2
1
0
1
0
1
1
0
0
0
1
0

SRA m
Művelet:
Formátum:

OP kód

Operandusok
 
SRA
m

Az m operandus r, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az RLC utasításoknál. A különböző OP kód-operandus kombinációk az alábbiak:

SRA r
1
1
0
0
1
0
1
1
CB
0
0
1
0
1
<
r
>
 
SRA (HL)
1
1
0
0
1
0
1
1
CB
0
0
1
0
1
1
1
0
2E
SRA (IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
1
0
1
1
1
0
2E
SRA (IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
1
0
1
1
1
0
2E

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az utasítás az m operandus tartalmán egy helyértékkel jobbra történő aritmetikai léptetést végez. A 7-es bit tartalma a 6-os bitbe töltődik, a 6-os bit eredeti tartalma az 5-ös bitbe kerül, stb. A 0-ás bit tartalma az átvitel bitbe kerül, és a 7-es bit eredeti tartalma változatlan marad. A 0-ás bit a legkisebb helyértékű bit.

Utasítás M ciklusok T állapotok 4 MHz V.i.
SRA r
2
8 (4, 4)
2,00
SRA (HL)
4
15 (4, 4, 4, 3)
3,75
SRA (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
SRA (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az m operandus által meghatározott byte 7-es bitjének tartalmát veszi fel

Példa:
Ha az IX index regiszter tartalma 1000H, és az 1003H című memóriarekesz tartalma

7
6
5
4
3
2
1
0
1
0
1
1
1
0
0
0

akkor az
SRA (IX+3H)
utasítás végrehajtása után az 1003H című memóriarekesz, és az átvitel bit tartalma a következő lesz:

7
6
5
4
3
2
1
0
C
1
1
0
1
1
1
0
0
0

 


SRL m
Művelet:
Formátum:

OP kód

Operandusok
 
SRL
m

Az m operandus r, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az RLC utasításoknál. A különböző lehetséges OP kód-operandus kombinációk az alábbiak:

SRL r
1
1
0
0
1
0
1
1
CB
0
0
1
1
1
<
r
>
 
SRL (HL)
1
1
0
0
1
0
1
1
CB
0
0
1
1
1
1
1
0
3E
SRL (IX+d)
1
1
0
1
1
1
0
1
DD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
1
1
1
1
1
0
3E
SRL (IY+d)
1
1
1
1
1
1
0
1
FD
1
1
0
0
1
0
1
1
CB
<
-
-
d
-
-
-
>
 
0
0
1
1
1
1
1
0
3E

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az utasítás az m operandus tartalmán egy helyértékkel jobbra történő logikai léptetést végez. A 7-es bit tartalma a 6-os bitbe kerül, 6-os bit tartalma az 5-ös bitbe kerül, stb. A 0-ás bit tartalma az átvitel bitbe kerül, és a 7-es bit törlődik. A 0-ás bit a legkisebb helyértékű.

Utasítás M ciklusok T állapotok 4 MHz V.i.
SRL r
2
8 (4, 4)
2,00
SRL (HL)
4
15 (4, 4, 4, 3)
3,75
SRL (IX+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75
SRL (IY+d)
6
23 (4, 4, 3, 5, 4, 3)
5,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
törlődik
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
az m operandus által meghatározott byte 0-es bitjének tartalmát veszi fel

Példa:
Ha a B regiszter tartalma

7
6
5
4
3
2
1
0
1
0
0
0
1
1
1
1

akkor az
SRL B
utasítás végrehajtásának eredményeként a B regiszter, és az átvitel bit tartalma a következő lesz:

7
6
5
4
3
2
1
0
C
0
1
0
0
0
1
1
1
1

 


SUB s
Művelet: AA-s
Formátum:

OP kód

Operandusok
 
SUB
s

Az s operandus r, n, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az ADD utasításoknál. A különböző lehetséges OP kód-operandus kombinációk az alábbiak:

SUB r
1
0
0
1
0
<
r
>
 
SUB n
1
1
0
1
0
1
1
0
D6
<
-
-
n
-
-
-
>
 
SUB (HL)
1
0
0
1
0
1
1
0
96
SUB (IX+d)
1
1
0
1
1
1
0
1
DD
1
0
0
1
0
1
1
0
96
<
-
-
d
-
-
-
>
 
SUB (IY+d)
1
1
1
1
1
1
0
1
FD
1
0
0
1
0
1
1
0
96
<
-
-
d
-
-
-
>
 

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az s operandus tartalma kivonódik az akkumulátor tartalmából, és az eredmény az akkumulátorba kerül.

Utasítás M ciklusok T állapotok 4 MHz V.i.
SUB r
1
4
1,00
SUB n
2
7 (4, 3)
1,75
SUB (HL)
2
7 (4, 3)
1,75
SUB (IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
SUB (IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik
P/V:
1-es állapotba kerül, ha túlcsordulás áll fenn; egyébként törlődik
N:
1-es állapotba kerül
C:
1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik

Példa:
Ha az akkumulátor 29H-t, és a D regiszter 11H-t tartalmaz, akkor a
SUB D
utasítás végrehajtásának eredményeként az akkumulátor 18H-t fog tartalmazni.


XOR s
Művelet: AA+s
Formátum:

OP kód

Operandusok
 
XOR
s

Az s operandus r, n, (HL), (IX+d) vagy (IY+d) bármelyike lehet, úgy, mint az ADD utasításoknál. A különböző OP kód-operandus kombinációk az alábbiak:

XOR r
1
0
1
0
1
<
r
>
 
XOR n
1
1
1
0
1
1
1
0
EE
<
-
-
n
-
-
-
>
 
XOR (HL)
1
0
1
0
1
1
1
0
AE
XOR (IX+d)
1
1
0
1
1
1
0
1
DD
1
0
1
0
1
1
1
0
AE
<
-
-
d
-
-
-
>
 
XOR (IY+d)
1
1
1
1
1
1
0
1
FD
1
0
1
0
1
1
1
0
AE
<
-
-
d
-
-
-
>
 

Az r a B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:

Regiszter
r
B
000
C
001
D
010
E
011
H
100
L
101
A
111

Leírás:
Az utasítás az s operandus által specifikált byte tartalma, és az akkumulátor regiszter tartalma között létesít bitenkénti KIZÁRÓ VAGY kapcsolatot, Az eredmény az akkumulátorban tárolódik.

Utasítás M ciklusok T állapotok 4 MHz V.i.
XOR r
1
4
1,00
XOR n
2
7 (4, 3)
1,75
XOR (HL)
2
7 (4, 3)
1,75
XOR (IX+d)
5
19 (4, 4, 3, 5, 3)
4,75
XOR (IY+d)
5
19 (4, 4, 3, 5, 3)
4,75

A jelzőbit regiszter érintett bitjei:

S:
1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik
Z:
1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik
H:
1-es állapotba kerül
P/V:
1-es állapotba kerül páros paritás esetén; egyébként törlődik
N:
törlődik
C:
törlődik

Példa:
Ha az akkumulátor tartalma 96H (10010110), akkor a
XOR 5DH
(Megj.: 5DH = 01011101)
utasítás végrehajtásának eredményeként az akkumulátor tartalma cbH (11001011) lesz.

Vissza a Spectrum könyvekhez

Vissza az Enterprise könyvekhez