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.

Gépi kód, mnemonikus kód
A Z80-ban az utasítások 1-4 bájt hosszúak. Ez tartalmazza egyrészt a művelet kódját, másrészt vagy közvetlenül magát az operandust, vagy annak kódját vagy címét. Az operandus kódok 2-3 bitesek, és a művelet kódjával együtt egy bájtban vannak. A közvetlen operandusok az utasítás utolsó egy vagy két bájtját alkotják. Ha az utasítás címet tartalmaz, akkor az is a címzés módjától függően egy vagy két bájtot foglal el. Szerepel a Z80-ban még négy egy bájtos ún. előkód is, amely az ezt követő bájtok dekódolását módosítja. Ezek hexadecimálisan a következők: CB, DD, ED, FD.
A mnemonikus gépi kód két részből áll:

  1. az utasításhoz rendelt mnemonik, amely az utasítás angol nevének betűiből alkotott 2-4 karakteres szó,
  2. operandus vagy operandusok, ha vannak.

Az operandusok a következők lehetnek:

  1. regiszter vagy regiszterpár betűkódja,
  2. feltétel betűkódja,
  3. szám,
  4. regiszter, regiszterpár, szám zárójelbe zárva,
  5. indexregiszter és szám összege zárójelbe zárva.

Regiszter vagy regiszterpár esetén a művelet operandusa ezek tartalma, vagy a művelet eredménye kerül ide. Szám esetén ez maga a művelet operandusa. A zárójeles kifejezéseknél a műveletben résztvevő operandus nem a regiszter ill. regiszterpár tartalma, vagy a szám vagy az indexregiszter tartalma és a szám összege, hanem ez cím, amely megmutatja, hogy az operandus a memóriában vagy az I/O kapuk között hol található. A feltételkódok a feltételes ugró utasítások operandusai.
Az egy bájtra vonatkozó műveletek operandus kódjai binárisan:

000 B
001 C
010 D
011 E
100 H
101 L
110 (HL)
111 A

A két bájtra vonatkozó műveletek operandus kódjai binárisan:

00 BC
01 DE
10 HL
11 AF a verem műveleteknél és
SP egyébként

A feltételkódok binárisan

000 NZ nem zérus a Z bit 0
001 Z zérus a Z bit 1
010 NC nincs átvitel a C bit 0
011 C van átvitel a C bit 1
100 PO páratlan paritás a P/V bit 0
101 PE páros paritás a P/V bit 1
110 P nem negatív az N bit 0
111 M negatív az N bit 1

A Z80 a két bájtos adatokat úgy tekinti, hogy a kisebb címen van az alacsonyabb helyiértékű bájt és a következőn a magasabb, és a kisebb cím egyben az adat címe is.
Az előkódok módosítják az őket követő utasításkódok dekódolását. A CB és az ED után teljesen eltér a dekódolás az eredetitől, míg DD és FD esetén a következőképpen történik. Ezek olyan utasítások előkódjai lehetnek, amelyek tartalmazzák a HL vagy (HL) operandust. DD után a HL szerepét az IX regiszter a (HL) szerepét az (IX+d) kifejezés veszi át. Itt d az ún. relatív cím, amely egy előjeles egy bájtos adat és az IX regiszter tartalmával összeadva határozza meg a memória címet. A d mindig a DD előkódot követő második bájt. Az eredeti utasítás kódjai szükség esetén egy bájttal hátrább csúsznak. Az FD előkód szerepe hasonló, csak az IX regiszter helyett az IY regiszter szerepel. A DD és FD a CB előkódú utasítás előkódjaként is szerepelhet. Az előkóddal rendelkező utasítások első két gépi ciklusa M1 ciklus, így két memória frissítés esik egy utasításra. A kettős előkódú utasításoknál az eredeti utasításkód beolvasása már csak közönséges memóriaolvasó gépi ciklusban történik, tehát itt is csak két M1 ciklus van.

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 + s + 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-operandus 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
<
b
>
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 operandus á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 1-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 1-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 á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 1 utasítás az 1-s megszakítási módot (mode 1) állítja be. Ebben az üzemmódban a processzor a megszakítási kérelemre egy 0038H-as memóriarekeszre irányuló "Restart" végrehajtásával (RST0038H) 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) 1-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, HL 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 operandus (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 operandus á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 1-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 1-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 1-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 1-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 operandus á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

Ez az utasítás tehát abban különbözik a CALL utasítástól, hogy csak 1 bájtos, végrehajtási ideje is rövidebb, de csak 8 féle címre lehet vele ugrani.
Az RST utasítások használhatók a 0. és 1. megszakítási módokban a megszakítást feldolgozó szubrutinok hívására.

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 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 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.

A Z80-as utasítások kódjai
A táblázat a kódokat hexadecimális alakban adja meg. Az egyéb jelölések:

ADC A(HL)
ADC A,(IX+d)
ADC A,(IY+d)
ADC A,A
ADC A,B
ADC A,C
ADC A,D
ADC A,E
ADC A,H
ADC A,L
ADC A,n
ADC HL,BC
ADC HL,DE
ADC HL,HL
ADC HL,SP
ADD A,(HL)
ADD A,(IX+d)
ADD A,(IY+d)
ADD A,A
ADD A,B
ADD A,C
ADD A,D
ADD A,E
ADD A,H
ADD A,L
ADD A,n
ADD HL,BC
ADD HL,DE
ADD HL,HL
ADD HL,SP
ADD IX,BC
ADD IX,DE
ADD IX,IX
ADD IX,SP
ADD IY,BC
ADD IY,DE
ADD IY,IY
ADD IY,SP
AND (HL)
AND (IX+d)
AND (IY+d)
AND A
AND B
AND C
AND D
AND E
AND H
AND L
AND n
BIT 0,(HL)
BIT 0,(IX+d)
BIT 0,(IY+d)
BIT 0,A
BIT 0,B
BIT 0,C
BIT 0,D
BIT 0,E
BIT 0,H
BIT 0,L
BIT 1,(HL)
BIT 1,(IX+d)
BIT 1,(IY+d)
BIT 1,A
BIT 1,B
BIT 1,C
BIT 1,D
BIT 1,E
BIT 1,H
BIT 1,L
BIT 2,(HL)
BIT 2,(IX+d)
BIT 2,(IY+d)
BIT 2,A
BIT 2,B
BIT 2,C
BIT 2,D
BIT 2,E
BIT 2,H
BIT 2,L
BIT 3,(HL)
BIT 3,(IX+d)
BIT 3,(IY+d)
BIT 3,A
BIT 3,B
BIT 3,C
BIT 3,D
BIT 3,E
BIT 3,H
BIT 3,L
BIT 4,(HL)
BIT 4,(IX+d)
BIT 4,(IY+d)
BIT 4,A
BIT 4,B
BIT 4,C
BIT 4,D
BIT 4,E
BIT 4,H
BIT 4,L
BIT 5,(HL)
BIT 5,(IX+d)
BIT 5,(IY+d)
BIT 5,A
BIT 5,B
BIT 5,C
BIT 5,D
BIT 5,E
BIT 5,H
BIT 5,L
BIT 6,(HL)
BIT 6,(IX+d)
BIT 6,(IY+d)
BIT 6,A
BIT 6,B
BIT 6,C
BIT 6,D
BIT 6,E
BIT 6,H
BIT 6,L
BIT 7,(HL)
BIT 7,(IX+d)
BIT 7,(IY+d)
BIT 7,A
BIT 7,B
BIT 7,C
BIT 7,D
BIT 7,E
BIT 7,H
BIT 7,L
CALL nn
CALL C,nn
CALL NC,nn
CALL Z,nn
CALL NZ,nn
CALL M,nn
CALL P,nn
CALL PE,nn
CALL PO,nn
CCF
CP (HL)
CP (IX+d)
CP (IY+d)
CP A
CP B
CP C
CP D
CP E
CP H
CP L
CP n
CPD
CPDR
CPI
CPIR
CPL
DAA
DEC (HL)
DEC (IX+d)
DEC (IY+d)
DEC A
DEC B
DEC BC
DEC C
DEC D
DEC DE
DEC E
DEC H
DEC HL
DEC IX
DEC IY
DEC L
DEC SP
DI
DJNZ d
EI
EX (SP),HL
EX (SP),IX
EX (SP),IY
EX AF,AF'
EC DE,HL
EXX
IM 0
IM 1
IM 2
IN A,(C)
IN A(n)
IN B,(C)
IN C,(C)
IN D,(C)
IN E,(C)
IN H,(C)
IN L,(C)
INC (HL)
INC (IX+d)
INC (IY+d)
INC A
INC B
INC BC
INC C
INC D
INC DE
INC E
INC H
INC HL
INC IX
INC IY
INC L
INC SP
IND
INDR
INI
INIR
JP nn
JP (HL)
JP (IX)
JP (IY)
JP C,nn
JP NC,nn
JP Z,nn
JP NZ,nn
JP M,nn
JP P,nn
JP PE,nn
JP PO,nn
JR d
JR C,d
JR NC,d
JR Z,d
LD NZ,d
LD (BC),A
LD (DE),A
LD (HL),A
LD (HL),B
LD (HL),C
LD (HL),D
LD (HL),E
LD (HL),H
LD (HL),L
LD (HL),n
LD (IX+d),A
LD (IX+d),B
LD (IX+d),C
LD (IX+D),D
LD (IX+d),E
LD (IX+d),H
LD (IX+d),L
LD (IX+d),n
LD (IY+d),A
LD (IY+d),B
LD (IY+d),C
LD (IY+D),D
LD (IY+d),E
LD (IY+d),H
LD (IY+d),L
LD (IY+d),n
LD (nn),A
LD (nn),BC
LD (nn),DE
LD (nn),HL
LD (nn),IX
LD (nn),IY
LD (nn),SP
LD A,(BC)
LD A,(DE)
LD A,(HL)
LD A,(IX+d)
LD A,(IY+d)
LD A,(nn)
LD A,A
LD A,B
LD A,C
LD A,D
LD A,E
LD A,H
LD A,I
LD A,L
LD A,n
LD A,R
LD B,(HL)
LD B,(IX+d)
LD B,(IY+d)
LD B,A
LD B,B
LD B,C
LD B,D
LD B,E
LD B,H
LD B,L
LD B,n
LD BC,(nn)
LD BC,nn
LD C,(HL)
LD C,(IX+d)
LD C,(IY+d)
LD C,A
LD C,B
LD C,C
LD C,D
LD C,E
LD C,H
LD C,L
LD C,n
LD D,(HL)
LD D,(IX+d)
LD D,(IY+d)
LD D,A
LD D,B
LD D,C
LD D,D
LD D,E
LD D,H
LD D,L
LD D,n
LD DE,(nn)
LD DE,nn
LD E,(HL)
LD E,(IX+d)
LD E,(IY+d)
LD E,A
LD E,B
LD E,C
LD E,D
LD E,E
LD E,H
LD E,L
LD E,n
LD H,(HL)
LD H,(IX+d)
LD H,(IY+d)
LD H,A
LD H,B
LD H,C
LD H,D
LD H,E
LD H,H
LD H,L
LD H,n
LD HL,(nn)
LD HL,nn
LD I,A
LD IX,(nn)
LD IX,nn
LD IY,(nn)
LD IY,nn
8E
DD 8E d
FD 8E d
8F
88
89
8A
8B
8C
8D
CE n
ED 4A
ED 5A
ED 6A
ED 7A
86
DD 86 d
FD 86 D
87
80
81
82
83
84
85
C6 n
09
19
29
39
DD 09
DD 19
DD 29
DD 39
FD 09
FD 19
FD 29
FD 39
A6
DD A6 D
FD A6 d
A7
A0
A1
A2
A3
A4
A5
E6 n
CB 46
DD CB d 46
FD CB d 46
CB 47
CB 40
CB 41
CB 42
CB 43
CB 44
CB 45
CB 4E
DD CB d 4E
FC CB d 4E
CB 4F
CB 48
CB 49
CB, 4A
CB 4B
CB 4C
CB 4D
CB 56
DD CB d 56
FD CB d 56
CB 57
CB 50
CB 51
CB 52
CB 53
CB 54
CB 55
CB 5E
DD CB d 5E
FD CB d 5E
C5 5F
CB 58
CB 59
CB 5A
CB 5B
CB 5C
CB 5D
CB 66
DD CB d 66
DD CB d 66
CB 64
CB 60
CB 61
CB 62
CB 63
CB 64
CB 65
CB 6E
DD CB d 6E
FD CB d 6E
CB 6F
CB 68
CB 69
CB 6A
CB AB
CB AC
CB 6D
CB 76
DD CB d 76
FD CB d 76
CB 77
CB 70
CB 71
CB 72
CB 73
CB 74
CB 75
CB 7E
DD CB d 7E
FD CB d 7E
CB 7F
CB 78
CB 79
CB 7A
CB 7B
CB 7C
CB 7D
CD lo hi
DC lo hi
D4 lo hi
CC lo hi
C4 lo hi
FC lo hi
F4 lo hi
EC lo hi
E4 lo hi
3F
BE
DD BE d
FD BE d
BF
B8
B9
BA
BB
BC
BD
FE n
ED A9
ED B9
ED A1
ED B1
2F
27
35
DD 35 d
FD 35 d
3D
05
0B
0D
15
1B
1D
25
2B
DD 2B
FD 2B
2D
3B
DI
10 d
FB
E3
DD E3
FD E3
08
EB
D9
ED 46
ED 56
ED 5E
ED 78
DB n
ED 40
ED 48
ED 50
ED 58
ED 60
ED 68
34
DD 34 d
FD 34 d
3C
04
03
0C
14
13
1C
24
23
DD 23
FD 23
2C
33
ED AA
ED BA
ED A2
ED B2
C3 lo hi
E9
DD E9
FD E9
DA lo hi
D2 lo hi
CA lo hi
C2 lo hi
FA lo hi
F2 lo hi
EA lo hi
E2 lo hi
18 d
38 d
30 d
28 d
20 d
02
12
77
70
71
72
73
74
75
36 n
DD 77 d
DD 70 d
DD 71 d
DD 72 d
DD 73 d
DD 74 d
DD 75 d
DD 36 d n
FD 77 d
FD 70 d
FD 71 d
FD 72 d
FD 73 d
FD 74 d
FD 75 d
FD 36 d n
32 lo hi
ED 43 lo hi
ED 53 lo hi
22 lo hi
DD 22 lo hi
FD 22 lo hi
ED 73 lo hi
0A
1A
7E
DD 7E d
FD 7E d
3A lo hi
7F
78
79
7A
7B
7C
ED 57
7D
3E n
ED 5F
46
DD 46 d
FD 46 d
47
40
41
42
43
44
45
06 n
ED 48 lo hi
01 lo hi
4E
DD 4E d
FD 4E d
4F
48
49
4A
4B
4C
4D
0E n
56
DD 56 d
FD 56 d
57
50
51
52
53
54
55
16 n
ED 5B lo hi
11 lo hi
5E
DD 5E d
FD 5E d
5F
58
59
5A
5B
5C
5D
1E n
66
DD 66 d
FD 66 d
67
60
61
62
63
64
65
26 n
2A lo hi
21 lo hi
ED 47
DD 2A lo hi
DD 21 lo hi
FD 2A lo hi
FD 21 lo hi
  LD L,(HL)
LD L,(IX+d)
LD L,(IY+d)
LD L,A
LD L,B
LD L,C
LD L,D
LD L,E
LD L,H
LD L,L
LD L,n
LD SP,(nn)
LD SP,HL
LD SP,IX
LD SP,IY
LD SP,nn
LDD
LDDR
LDI
LDIR
NEG
NOP
OR (HL)
OR (IX+d)
OR (IY+d)
OR A
OR B
OR C
OR D
OR E
OR H
OR L
OR n
OTDR
OTIR
OUT (C),A
OUT (C),B
OUT (C),C
OUT (C),D
OUT (C),E
OUT (C),H
OUT (C),L
OUT (n),A
OUTD
OUTI
POP AF
POP BC
POP DE
POP HL
POP IX
POP IY
PUSH AF
PUSH BC
PUSH DE
PUSH HL
PUSH IX
PUSH IY
RES 0,(HL)
RES 0,(IX+d)
RES 0,(IY+d)
RES 0,A
RES 0,B
RES 0,C
RES 0,D
RES 0,E
RES 0,H
RES 0,L
RES 1,(HL)
RES 1,(IX+d)
RES 1,(IY+d)
RES 1,A
RES 1,B
RES 1,C
RES 1,D
RES 1,E
RES 1,H
RES 1,L
RES 2,(HL)
RES 2,(IX+d)
RES 2,(IY+d)
RES 2,A
RES 2,B
RES 2,C
RES 2,D
RES 2,E
RES 2,H
RES 2,L
RES 3,(HL)
RES 3,(IX+d)
RES 3,(IY+d)
RES 3,A
RES 3,B
RES 3,C
RES 3,D
RES 3,E
RES 3,H
RES 3,L
RES 4,(HL)
RES 4,(IX+d)
RES 4,(IY+d)
RES 4,A
RES 4,B
RES 4,C
RES 4,D
RES 4,E
RES 4,H
RES 4,L
RES 5,(HL)
RES 5,(IX+d)
RES 5,(IY+d)
RES 5,A
RES 5,B
RES 5,C
RES 5,D
RES 5,E
RES 5,H
RES 5,L
RES 6,(HL)
RES 6,(IX+d)
RES 6,(IY+d)
RES 6,A
RES 6,B
RES 6,C
RES 6,D
RES 6,E
RES 6,H
RES 6,L
RES 7,(HL)
RES 7,(IX+d)
RES 7,(IY+d)
RES 7,A
RES 7,B
RES 7,C
RES 7,D
RES 7,E
RES 7,H
RES 7,L
RET
RET C
RET NC
RET Z
RET NZ
RET M
RET P
RET PE
RET PO
RETI
RETN
RL (HL)
RL (IX+d)
RL (IY+d)
RL A
RL B
RL C
RL D
RL E
RL H
RL L
RLA
RLC (HL)
RLC (IX+d)
RLC (IY+d)
RLC A
RLC B
RLC C
RLC D
RLC E
RLC H
RLC L
RLCA
RLD
RR (HL)
RR (IX+d)
RR (IY+d)
RR A
RR B
RR C
RR D
RR E
RR H
RR L
RRA
RRC (HL)
RRC (IX+d)
RRC (IY+d)
RRC A
RRC B
RRC C
RRC D
RRC E
RRC H
RRC L
RRCA
RRD
RST 00
RST 08
RST 10
RST 18
RST 20
RST 28
RST 30
RST 38
SBC A,(HL)
SBC A,(IX+d)
SBC A,(IY+d)
SBC A,A
SBC A,B
SBC A,C
SBC A,D
SBC A,E
SBC A,H
SBC A,L
SBC A,n
SBC HL,BC
SBC HL,DE
SBC HL,HL
SBC HL,SP
SCF
SET 0,(HL)
SET 0,(IX+d)
SET 0,(IY+d)
SET 0,A
SET 0,B
SET 0,C
SET 0,D
SET 0,E
SET 0,H
SET 0,L
SET 1,(HL)
SET 1,(IX+d)
SET 1,(IY+d)
SET 1,A
SET 1,B
SET 1,C
SET 1,D
SET 1,E
SET 1,H
SET 1,L
SET 2,(HL)
SET 2,(IX+d)
SET 2,(IY+d)
SET 2,A
SET 2,B
SET 2,C
SET 2,D
SET 2,E
SET 2,H
SET 2,L
SET 3,(HL)
SET 3,(IX+d)
SET 3,(IY+d)
SET 3,A
SET 3,B
SET 3,C
SET 3,D
SET 3,E
SET 3,H
SET 3,L
SET 4,(HL)
SET 4,(IX+d)
SET 4,(IY+d)
SET 4,A
SET 4,B
SET 4,C
SET 4,D
SET 4,E
SET 4,H
SET 4,L
SET 5,(HL)
SET 5,(IX+d)
SET 5,(IY+d)
SET 5,A
SET 5,B
SET 5,C
SET 5,D
SET 5,E
SET 5,H
SET 5,L
SET 6,(HL)
SET 6,(IX+d)
SET 6,(IY+d)
SET 6,A
SET 6,B
SET 6,C
SET 6,D
SET 6,E
SET 6,H
SET 6,L
SET 7,(HL)
SET 7,(IX+d)
SET 7,(IY+d)
SET 7,A
SET 7,B
SET 7,C
SET 7,D
SET 7,E
SET 7,H
SET 7,L
SKA (HL)
SLA (IX+d)
SLA (IY+d)
SLA A
SLA B
SLA C
SLA D
SLA E
SLA H
SLA L
SRA (HL)
SRA (IX+d)
SRA (IY+d)
SRA A
SRA B
SRA C
SRA D
SRA E
SRA H
SRA L
SRL (HL)
SRL (IX+d)
SRL (IY+d)
SRL A
SRL B
SRL C
SRL D
SRL E
SRL H
SRL L
SUB (HL)
SUB (IX+d)
SUB (IY+d)
SUB A
SUB B
SUB C
SUB D
SUB E
SUB H
SUB L
SUB n
XOR (HL)
XOR (IX+d)
XOR (IY+d)
XOR A
XOR B
XOR C
XOR D
XOR E
XOR H
XOR L
XOR n
6E
DD 6E d
FD 6E d
6F
68
69
6A
6B
6C
6D
23 n
ED 7B lo hi
F9
DD F9
ED F9
31 lo hi
ED A8
ED B8
ED A0
ED B0
ED 44
00
B6
DD B6 d
FD B6 d
B7
B0
B1
B2
B3
B4
B5
F6 n
ED BB
ED B3
ED 79
ED 41
ED 49
ED 51
ED 59
ED 61
ED 69
D3 n
ED AB
ED A3
F1
C1
D1
E1
DD E1
FD E1
F5
C5
D5
E5
DD E5
FD E5
CB 86
DD CB d 86
FD CB d 86
CB 87
CB 80
CB 81
CB 82
CB 83
CB 84
CB 85
CB 8E
DD CB d 8E
FD CB d 8E
CB 8F
CB 88
CB 89
CB 8A
CB 8B
CB 8C
CB 8D
CB 96
DD CB d 96
FD CB d 96
CB 97
CB 90
CB 91
CB 92
CB 93
CB 94
CB 95
CB 9E
DD CB d 9E
FD CB d 9E
CB 9F
CB 98
CB 99
CB 9A
CB 9B
CB 9C
CB 9D
CB A6
DD CB d A6
FD CB d A6
CB A7
CB A0
CB A1
CB A2
CB A3
CB A4
CB A5
CB AE
DD CB d AE
FD CB d AE
CB AF
CB A8
CB A9
CB AA
CB AB
CB AC
CB AD
CB B6
DD CB d B6
FD CB d B6
CB B7
CB B0
CB B1
CB B2
CB B3
CB B4
CB B5
CB BE
DD CB d BE
FD CB d BE
CB BF
CB B8
CB B9
CB BA
CB BB
CB BC
CB BD
C9
D8
D0
C8
C0
F8
F0
E8
E0
ED 4D
ED 45
CB 16
DD CB d 16
FD CB d 16
CB 17
CB 10
CB 11
CB 12
CB 13
CB 14
CB 15
17
CB 06
DD CB D 06
FD CB d 06
CB 07
CB 00
CB 01
CB 02
CB 03
CB 04
CB 05
07
ED 6F
CB 1E
DD CB d 1E
FD CB d 1E
CB 1F
CB 18
CB 19
CB 1A
CB 1B
CB 1C
CB 1D
1F
CB 0E
DD CB d 0E
FD CB d 0E
CB 0F
CB 08
CB 09
CB 0A
CB 0B
CB 0C
CB 0D
0F
ED 67
C7
CF
D7
DF
E7
EF
F7
FF
9E
DD 9E d
FD 9E d
9F
98
99
9A
9B
9C
9D
DE n
ED 42
ED 52
ED 62
ED 72
37
CB C6
DD CB d C6
FD CB b C6
CB C7
CB C0
CB C1
CB C2
CB C3
CB C4
CB C5
CB CE
DD CB d CE
FD CB d CE
CB CF
CB C8
CB C9
CB CA
CB CB
CB CC
CB CD
CB D6
DD CB d D6
FD CB d D6
CB D7
CB D0
CB D1
CB D2
CB D3
CB D4
CB D5
CB DE
DD CB d DE
FD CB d DE
CB DF
CB D8
CB D9
CB DA
CB DB
CB DC
CB DD
CB E6
DD CB d E6
FD CB d E6
CB E7
CB E0
CB E1
CB E2
CB E3
CB E4
CB E5
CB EE
DD CB d EE
FD CB d EE
CB EF
CB E8
CB E9
CB EA
CB EB
CB EC
CB ED
CB F6
DD CB d F6
FD CB d F6
CB F7
CB F0
CB F1
CB F2
CB F3
CB F4
CB F5
CB FE
DB CB d FE
FD CB d FE
CB FF
CB F8
CB F9
CB FA
CB FB
CB FC
CB FD
CB 26
DD CB d 26
FD CB d 26
CB 27
CB 20
CB 21
CB 22
CB 23
CB 24
CB 25
CB 2E
DD CB d 2E
FD CB d 2E
CB 2F
CB 28
CB 29
CB 2A
CB 2B
CB 2C
CB 2D
CB 3E
DD CB d 3E
FD CB d 3E
CB 3F
CB 38
CB 39
CB 3A
CB 3B
CB 3C
CB 3D
96
DD 96 d
FD 96 d
97
90
91
92
93
94
95
D6 n
AE
DD AE d
FD AE d
AF
A8
A9
AA
AB
AC
AD
EE n

Vissza a Spectrum könyvekhez

Vissza az Enterprise könyvekhez