
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-8o-as sorozatunk így az alábbi részekből áll:
I. rész: | CPU |
II-III. rész: | PIO, CTC |
IV. rész: | SIO |
V. rész: | COMBO |
VI. rész: | DMA, Óra / RAM, VCU, A/D konverter |
VII. rész: | Alkalmazástechnikai példatár |
VIII. rész: | CPU utasításkészlet |
Bevezetés
A kézikönyv a Z80 CPU teljes utasításkészletének részletes ismertetését tartalmazza.
Az egyes utasításokat a műveleti kód, funkció, az assembler mnemonikus formátum és a műveleti kód (OP kód) leírásával ismertetjük. Az utasítások funkciójának ismertetését az utasítás végrehajtási idejének, M ciklusainak, T órajel-periódusainak és a jelzőbit (flag) regiszter érintett bitjeinek megadásával is szemléltetjük. Amennyiben a jelzőbit regiszter állapotát az utasítás nem befolyásolja, úgy ezt a leírásban külön nem tüntettük fel . Végül az utasítás működését egy példán keresztül illusztráljuk.
Megjegyzés:
A végrehajtási idő (továbbiakban: V.i.) minden egyes utasítás esetén 4 MHz-es CPU órajel frekvenciát feltételezve ms-ban értelmezendő.
Az utasítás végrehajtásához szükséges gépi ciklusok (M) számát a teljes órajel-periódussal (T állapot) együtt adjuk meg. Emellett az egyes M gépi ciklusokon belüli T órajel-periódusok számát is jelezzük. Pl.:
| M ciklusok: 2 | T állapotok: 7 (4,3) | 4 MHz V.i.: 1,75 |
Ez úgy értelmezendő, hogy az utasítás két gépi ciklusból áll. Az első gépi ciklus 4 órajel-periódusból (T állapotból) áll, míg a második gépi ciklus 3 órajel-periódust tartalmaz. Így az utasítás összesen 7 órajel-periódus hosszúságú, ezért 1.75 ms végrehajtási időt igényel.
A regiszter-formátumokban minden egyes utasítás esetén a legnagyobb helyértékű a bal szélső bit, míg a legkisebb helyértékű a jobb szélső bit.
ADC HL,ss
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| Formátum: | OP kód | Operandusok |
AND | s |
Az s operandus az r, n, (HL), (IX+d) vagy (IY+d)bármelyike, amint azt az ezzel az utasítással analóg ADD utasításoknál meghatároztuk. Ezek a különböző lehetséges OP kód-operaadus kombinációk a tárgykádban a következők lehetnek:
| AND r | 1 | 0 | 1 | 0 | 0 | < | r | > | |
| AND n | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | E6 |
< | - | - | n | - | - | - | > | ||
| AND (HL) | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | A6 |
| AND (IX+d) | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | DD |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | A6 | |
< | - | - | d | - | - | - | > | ||
| AND (IY+d) | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | FD |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | A6 | |
< | - | - | d | - | - | - | > |
r B, C, D, E, H, L vagy A regisztereket azonosítja az alábbiak szerint:
Regiszter | r |
B | 000 |
C | 001 |
D | 010 |
E | 011 |
H | 100 |
L | 101 |
A | 111 |
Leírás:
Olyan bitenkénti logikai ÉS művelet, amely az s operandus által meghatározott byte, és az akkumulátor által tartalmazott byte között valósul meg. Az eredmény az akkumulátorban tárolódik.
| Utasítás | M ciklusok | T állapotok | 4 MHz V.i. |
| AND r | 1 | 4 | 1,00 |
| AND n | 2 | 7 (4, 3) | 1,75 |
| AND (HL) | 2 | 7 (4, 3) | 1,75 |
| AND (IX+d) | 5 | 19 (4, 4, 3, 5, 3) | 4,75 |
| AND (IY+d) | 5 | 19 (4, 4, 3, 5, 3) | 4,75 |
A jelzőbit regiszter érintett bitjei:
S: | 1-es állapotba kerül, ha, az eredmény negatív; egyébként törlődik |
Z: | 1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik |
H: | 1-es állapotba kerül |
P/V: | 1-es állapotba kerül páros paritás esetén; egyébként törlődik N: törlődik |
N: | törlődik |
C: | törlődik |
Példa:
Ha a B regiszter 7BH-t (01111011), és az akkumulátor C3H-t (11000011) tartalmaz, az
AND B
végrehajtásának eredményeként az akkumulátor tartalma 43H (01000011) lesz.
| Formátum: | OP kód | Operandusok |
BIT | b,(HL) |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
0 | 1 | < | r | > | 1 | 1 | 0 |
Leírás:
Ennek az utasításnak a végrehajtása után a jelzőbit regiszterben lévő Z bit a HL regiszterpár tartalma által megcímzett memóriarekeszen belül a b operandus által kijelölt bit komplemensét tartalmazza. A b operandus jelentése:
Vonatkozó bit | b |
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
| M ciklusok: 3 | T állapotok: 12 (4, 4, 4) | 4 MHz V.i.: 3,00 |
A jelzőbit regiszter érintett bitjei:
S: | ismeretlen |
Z: | 1-es állapotba kerül, ha, a specifikált bit 0; egyébként törlődik |
H: | 1-es állapotba kerül |
P/V: | ismeretlen |
N: | törlődik |
C: | változatlan marad |
Példa:
Ha a HL regiszterpár 4444H-t, és a 4-es bit a 4444H című memóriarekeszben 1-et tartalmaz, a
BIT 4,(HL)
végrehajtásának eredményeként a Z bit 0-t, a 4-es bit pedig a. 4444H című memória rekeszben változatlanul 1-et fog tartalmazni.
| 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.
| 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.
| Formátum: | OP kód | Operandusok |
BIT | b,r |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
0 | 1 | < | b | > | < | r | > |
Leírás:
Az utasítás az r operaadus által meghatározott regiszternek a b operandus által kijelölt bitjét invertálva a jelzőbit regiszter Z bitjébe tölti. Az r és b operancusok tárgykódban a következőket jelenthetik:
Vonatkozó bit | b | Regiszter | r |
0 | 000 | B | 000 |
1 | 001 | C | 001 |
2 | 010 | D | 010 |
3 | 011 | E | 011 |
4 | 100 | H | 100 |
5 | 101 | L | 101 |
6 | 110 | A | 111 |
7 | 111 |
| M ciklusok: 2 | T állapotok: 8 (4, 4) | 4 MHz V.i.: 2,00 |
A jelzőbit regiszter érintett bitjei:
S: | ismeretlen |
Z: | 1-es állapotba kerül, ha a b operandus által specifikált bit 0; egyébként törlődik |
H: | 1-es állapotba, kerül |
P/V: | ismeretlen |
N: | törlődik |
C: | változatlan marad |
Példa:
Ha a 2-es bit a B regiszterben 0-t tartalmaz, a
BIT 2,B
végrehajtásának eredményeként a Z bit 1-et fog tartalmazni, a 2-es bit a B regiszterben pedig 0 marad.
| Művelet: Ha cc igaz: | (SP-1) |
| (SP-2) |
| 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.
| 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.
| 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. |
| 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.
| Formátum: | OP kód | Operandusok |
CPD | - |
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | ED |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | A9 |
Leírás:
A HL regiszterpár által megcímzett memóriarekesz tartalma az akkumulátor regiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredményekként egy feltétel bit fog l-es állapotba kerülni. A HL és a byte számláló (BC regiszterpár) tartalma dekrementálódik.
| M ciklusok: 4 | T állapotok: 16 (4, 4, 3, 5) | 4 MHz V.i.: 4,00 |
A jelzőbit regiszter érintett bitjei:
S: | 1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik |
Z: | 1-es állapotba kerül, ha A=(HL) ; egyébként törlődik |
H: | 1-es állapotba kerül, ha alulcsordulás történt; egyébként törlődik |
P/V: | 1-es állapotba kerül, ha BC-1<>0; egyébként törlődik |
N: | 1-es állapotba kerül |
C: | változatlan marad |
Példa:
Ha a MTL regiszterpár 1111H-t, az 1111H című memóriarekesz 3BH-t, az akkumulátor 3BH-t, és a byte számláló 0001H-t tartalmaz, a
CPD
utasítás végrehajtása után a byte számláló 0000H-t, a HL regiszterpár 1110H-t fog tartalmazni, a, Z bit a jelzőbit regiszterben 1-es állapotba kerül, és a P/V bit törlődik. Az utasítás az akkumulátor, vagy az 1111H című memóriarekesz tartalmára nem lesz hatással.
| Formátum: | OP kód | Operandusok |
CPD | - |
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | ED |
1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | B9 |
Leírás:
A HL regiszterpár által megcímzett memóriarekesz tartalma az akkumulátor regiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredményeként egy feltétel bit fog l-es állapotba kerülni. A HL és a BC (Byte számláló) regiszter dekrementálódik. Ha a dekrementálás eredményeként a BC tartalma 0-vá válik, vagy ha A=(HL), az utasítás befejeződik. Ha BC tartalma nem zerus és A<>(HL), a programszámláló 2-vel dekrementálódik, és az utasítás megismétlődik.
Megjegyzés: ha BC tartalma az utasítás végrehajtása előtt már 0-ra van beállítva, az utasítás 64Kbyte-on keresztül fog megismétlődni, feltéve, hogy az egymást követő összehasonlítások során nem történt megegyezés. Minden memóriához fordulást követően két frissítési ciklus (refresh cycle) zajlik le, és ilyenkor a megszakítások (interruptok) is érvényesülnek.
BC<>0 és A<>(HL) esetén:
| M ciklusok: 5 | T állapotok: 21 (4, 4, 3, 5, 5) | 4 MHz V.i.: 5,25 |
BC=0 vagy A=(HL) esetén:
| M ciklusok: 4 | T állapotok: 16 (4, 4, 3, 5) | 4 MHz V.i.: 4,00 |
A jelzőbit regiszter érintett bitjei:
S: | 1-es állapotba kerül, ha az eredmény negatív; egyébként törlődik |
Z: | 1-es állapotba kerül, ha A=(HL) ; egyébként törlődik |
H: | 1-es állapotba kerül, ha, alulcsordulás történt; egyébként törlődik |
P/V: | 1-es állapotba kerül, ha BC-1<>0; egyébként törlődik |
N: | 1-es állapotba kerül |
C: | változatlan marad |
Példa:
Ha a HL regiszterpár 1118H-t, az akkumulátor F3H-t, és a byte számláló 0007H-t tartalmaz, a memóriarekeszek tartalma pedig az alábbiak szerint alakul:
Rekesz | Tartalom |
1118H | 52H |
1117H | 00H |
1116H | F3H |
akkor a
CPDR
utasítás végrehajtása után a HL regiszterpár tartalma 1115H, a byte számláló tartalma 0004H lesz, a P/V bit l-es állapotba kerül, és a Z bit is 1-es állapotba kerül.
| 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.
| 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.
| 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.
| 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 |
| 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.
| 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.
| 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.
| 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.
| 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.
| 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 |
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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 |
| 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 |
| Formátum: | OP kód | Operandusok |
IM | 1 |
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | ED |
0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 56 |
Leírás:
Az IM 0 utasítás a 0-s megszakítási módot (mode 0) állítja be. Ebben az üzemmódban a processzor a megszakítási kérelemre egy 0038H-as rekeszre irányuló "Restart" végrehajtásával válaszol.
| M ciklusok: 2 | T állapotok: 8 (4, 4) | 4 MHz V.i.: 2,00 |
| 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 |
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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 |
| 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.
| 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 |
| 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.
| 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.
| 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.
| 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 | nem zérus zérus nincs átvitel átvitel páratlan paritás páros paritás pozitív előjel negatív előjel | Z Z C C P/V P/V S S |
| M ciklusok: 3 | T állapotok: 10 (4, 3, 3) | 4 MHz V.i.:2,50 |
Példa:
Ha az átvitel bit (a C bit a jelzőbit regiszterben) l-es állapotban van, és a l520H című memóriarekesz tartalma 03H, akkor a
JP C,1520H
végrehajtásának eredményeként a programszámláló 1520H-t fog tartalmazni, és a következő gépi ciklusban a CPU az 1520H-s címen elhelyezett 03H-s byte-ot fogja kiemelni.
| 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 |
| 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) |
| 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 |
| 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 |
| 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) |
| 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 |
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
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.
| Formátum: | OP kód | Operandusok |
LD | dd,nn |
0 | 0 | d | d | 0 | 0 | 0 | 1 |
< | - | - | n | - | - | - | > |
< | - | - | n | - | - | - | > |
Leírás:
Az nn 2 byte-os egész szám a dd regiszterpárba töltődik, ahol a dd a BC, DE, HÉ vagy SP regiszterpárok egyikét jelöli, ezek tárgykódban a következők lehetnek:
Regiszterpár | dd |
BC | 00 |
DE | 01 |
HL | 10 |
SP | 11 |
A tárgykódban elsőként szereplő n operandus az alacsonyabb helyértékű byte-ot képviseli.
| M ciklusok: 3 | T állapotok: 10 (4, 3, 3) | 4 MHz V.i.:2,50 |
Példa:
Az
LD HL,5000H
utasítás végrehajtása után a HL regiszterpár tartalma 5000H lesz.
| 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.
| 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.
| 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.
Művelet: I
A
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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
| 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.
| 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.
| 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.
| 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 |
| 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 |
| 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 |
| 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 |
| 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.
| 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 |
| 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.
| 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_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
| 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
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
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.
| 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.
| 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.
| 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.
| Formátum: | OP kód | Operandusok |
RES | b,m |
A b operandus az m operaadus (r, (HL), (IX+d) vagy (IY+d) bármelyike) által meghatározott byte egy bitjét (7-től 0-ig) definiálja, amint azt az ezzel az utasítással analóg SET utasításoknál meghatároztuk. Ezek a különböző lehetséges OP kód-operandus kombinációk a tárgykódban a következők lehetnek:
| RES b,r | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
1 | 0 | < | b | > | < | r | > | ||
| RES b,(HL) | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
1 | 0 | < | b | > | 1 | 1 | 0 | ||
| RES b,(IX+d) | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | DD |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB | |
< | - | - | d | - | - | - | > | ||
1 | 0 | < | b | > | 1 | 1 | 0 | ||
| RES b,(IY+d) | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | FD |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB | |
< | - | - | d | - | - | - | > | ||
1 | 0 | < | b | > | 1 | 1 | 0 |
Törölt bit | b | Regiszter | r | |
0 1 2 3 4 5 6 7 | 000 001 010 011 100 101 110 111 | B C D E H L A | 000 001 010 011 100 101 111 |
Leírás:
Az m operandus által meghatározott byte-nak a b operaadus által meghatározott bitje törlődik.
| Utasítás | M ciklusok | T állapotok | 4 MHz V.i. |
| RES r | 2 | 8 (4 , 4) | 2,00 |
| RES (HL) | 4 | 15 (4, 4, 4, 3) | 3,75 |
| RES (IX+d) | 6 | 23 (4, 4, 3, 5, 4, 3) | 5,75 |
| RES (IY+d) | 6 | 23 (4, 4, 3, 5, 4, 3) | 5,75 |
Példa:
A
RES 6,D
utasítás végrehajtásának eredményeként a D regiszter 6-os bitje törlődik. (A D regiszter 0-ás bitje a legalacsonyabb helvértékű bit).
| 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.
| 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.
| 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:
| M ciklusok: 4 | T állapotok: 14 (4, 4, 3, 3) | 4 MHz V.i.:3,50 |
Példa:
Adott két megszakítást okozó eszköz, A és E, amelyek úgy vannak,_ megszakítási láncba kapcsolva, hogy A-nak nagyobb a prioritása.

B programmegszakítást generál, ami elfogadásra is kerül. (B-nek IEO engedélyező kimenete törlődik, és ezáltal mindaddig, amíg B kiszolgálása tart, az összes alacsonyabb prioritású megszakításkérés blokkolódik). Ezután A kér programmegszakítást, ezáltal felfüggesztve B kiszolgálását. (A-nak az IE0 programmegszakítást engedélyező kimenete törlődik, jelezve, hogy egy magasabb prioritású eszköz kiszolgálása van folyamatban). Az A rutin befejezésekor végrehajtott RETI utasítás ismét 1-es állapotba helyezi A-nak a programmegszakítást engedélyező IEO kimenetét, és így lehetővé teszi, hogy a B-t kiszolgáló rutin folytatódjék. A B rutin befejezésekor kiadott újabb RETI utasítás a B eszköz megszakítást engedélyező IEO kimenetét is l-es állapotba teszi, és ilyen módon biztosítja az alacsonyabb prioritású programmegszakítások érvényre jutását is.
| 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.
| Formátum: | OP kód | Operandusok |
RL | m |
Az m operandus r,(HL), (IX+d) vagy (IY+d) bórmelyike lehet, hasonlóan, mint az RLC utasításoknál. A lehetséges 0P kód-operandus kombinációk tárgykódban a következők:
| RL r | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
0 | 0 | 0 | 1 | 0 | < | r | > | ||
| RL (HL) | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB |
0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 16 | |
| RL (IX+d) | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | DD |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB | |
< | - | - | d | - | - | - | > | ||
0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 16 | |
| RL (IY+d) | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | FD |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | CB | |
< | - | - | d | - | - | - | > | ||
0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 16 |
Az r a B, C, D, E, H, L vagy A regisztereket azonosítja, amelyek tárgykódban a, következők:
Regiszter | r |
B | 000 |
C | 001 |
D | 010 |
E | 011 |
H | 100 |
L | 101 |
A | 111 |
Leírás:
Az m operandus tartalma a CY átvitel biten (a jelzőbit regiszter C bitje) keresztül egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe másolódik; az l-es bit előző tartalma pedig a 2-es bitbe, stb. A 7-es bit az átvitel bitbe, és az átvitel bit előző tartalma. pedig a 0-ás bitbe másolódik. (A 0-ás bit az m operandus legkisebb helyértékű bitje).
| Utasítás | M ciklusok | T állapotok | 4 MHz V.i. |
| RL r | 2 | 8 (4 , 4) | 2,00 |
| RL (HL) | 4 | 15 (4, 4, 4, 3) | 3,75 |
| RL (IX+d) | 6 | 23 (4, 4, 3, 5, 4, 3) | 5,75 |
| RL (IY+d) | 6 | 23 (4, 4, 3, 5, 4, 3) | 5,75 |
A jelzőbit regiszter érintett bitjei:
S: | 1-es állapotba kerül, ha, az eredmény negatív; egyébként törlődik |
Z: | 1-es állapotba kerül, ha az eredmény nulla; egyébként törlődik |
H: | törlődik |
P/V: | 1-es állapotba kerül páros paritás esetén; egyébként törlődik |
N: | törlődik |
C: | az m operandus által meghatározott byte 7-es bitjének tartalmát veszi fel |
Példa:
Ha a D regiszter, és az átvitel bit tartalma
C | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
az
RL D
utasítás végrehajtásának eredményeként a D regiszter, és az átvitel bit tartalma a következő lesz:
C | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
| Formátum: | OP kód | Operandusok |
RLA | - |
0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 17 |
Leírás:
Az akkumulátor (A regiszter) tartalma a CY átvitel biten (C bit) keresztül egy helyértékkel balra tolódik. A 0-ás bit tartalma az l-es bitbe kerül, az 1-es bit előző tartalma pedig, a 2-es bitbe, stb. A 7-es bit az átvitel bitbe, az átvitel bit előző tartalma pedig a 0-ás bitbe másolódik. A 0-ás bit a legalacsonyabb helyértékű bit.
| M ciklusok: 1 | T állapotok: 4 | 4 MHz V.i.:1,00 |
A jelzőbit regiszter érintett bitjei:
S: | változatlan marad |
Z: | változatlan marad |
H: | törlődik |
P/V: | változatlan marad |
N: | törlődik |
C: | az akkumulátor 7-es bitjének tartalmát veszi fel |
Példa:
Ha az akkumulátor, és az átvitel bit tartalma
C | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
akkor az
RLA
utasítás végrehajtásának eredményeként az akkumulátor, és az átvitel bit tartalma a következő lesz:
C | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |
| 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 |
| 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 |
| 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 |
| 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 |
| Formátum: | OP kód | Operandusok |
RLCA | - |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 07 |
Leírás:
Az akkumulátor (A regiszter) tartalma a CY átvitel bit megkerülésével egy helyértékkel balra tolódik. A 0-ás bit tartalma az 1-es bitbe kerül, az l-es bit előző tartalma a 2-es bitbe, stb. A 7-es bit tartalma az átvitel bitbe, és a 0-ás bitbe másolódik. (A 0-ás bit a byte legkisebb helyértékű bitje).
| M ciklusok: 1 | T állapotok: 4 | 4 MHz V.i.:1,00 |
A jelzőbit regiszter érintett bitjei:
S: | változatlan marad |
Z: | változatlan marad |
H: | törlődik |
P/V: | változatlan marad |
N: | törlődik |
C: | az akkumulátor 7-es bitjének tartalmát veszi fel |
Példa:
Ha az akkumulátor tartalma
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
akkor az
RLCA
utasítás végrehajtásának eredményeként az akkumulátor, és az átvitel bit tartalma a következő lesz:
C | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
| 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 |
| 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 |
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 |
| 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 |
| 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 |