Dodatkowe instrukcje mikroprocesora Z80 nie publikowane w materialach
o Z80. Ich "istnienie" w wersjach mikroprocesora produkowanych przez
roznych producentow NIE JEST GWARANTOWANE.
1. Rozkazy operujace na mlodszym i starszym bajcie rejestrow indeksowych
IX oraz IY - powstaja na wskutek prefiksowania kodem 0DDH lub 0FDH
rozkazow operujacych na rejestrach H lub L. Zamiast rejestru H lub L
operacja jest wykonywana na odpowiedniej polowce rejestru indeksowego.
Oznaczenia: HX - starszy bajt IX
LX - mlodszy bajt IX
HY - starszy bajt IY
LY - mlodszy bajt IY.
Rozkazy arytmetyczne i logiczne (znaczniki ustawiane analogicznie jak dla
rozkazow dotyczacych rejestrow H i L, wszystkie rozkazy wykonuja sie w
ciagu 8 cykli maszynowych):
rozkaz kod (HEX)
ADD A,HX DD 84
ADD A,LX DD 85
ADD A,HY FD 84
ADD A,LY FD 85
ADC A,HX DD 8C
ADC A,LX DD 8D
ADC A,HY FD 8C
ADC A,LY FD 8D
SUB HX DD 94
SUB LX DD 95
SUB HY FD 94
SUB LY FD 95
SBC A,HX DD 9C
SBC A,LX DD 9D
SBC A,HY FD 9C
SBC A,LY FD 9D
CP HX DD BC
CP LX DD BD
CP HY FD BC
CP LY FD BD
AND HX DD A4
AND LX DD A5
AND HY FD A4
AND LY FD A5
OR HX DD B4
OR LX DD B5
OR HY FD B4
OR LY FD B5
XOR HX DD AC
XOR LX DD AD
XOR HY FD AC
XOR LY FD AD
INC HX DD 24
INC LX DD 2C
INC HY FD 24
INC LY FD 2C
DEC HX DD 25
DEC LX DD 2D
DEC HY FD 25
DEC LY FD 2D
Rozkazy przeslan (znaczniki nie sa zmieniane, wszystkie rozkazy dwubajtowe
wykonuja sie w ciagu 8 cykli maszynowych, rozkazy trzybajtowe wykonuja sie
w ciagu 11 cykli maszynowych, natomiast rozkazy wykorzystujace przesuniecie
d w czasie nieznanym. n oznacza 8-bitowy argument bezposredni,d - 8-bitowe
przesuniecie):
rozkaz kod (HEX)
LD A,HX DD 7C
LD A,LX DD 7D
LD A,HY FD 7C
LD A,LY FD 7D
LD B,HX DD 44
LD B,LX DD 45
LD B,HY FD 44
LD B,LY FD 45
LD C,HX DD 4C
LD C,LX DD 4D
LD C,HY FD 4C
LD C,LY FD 4D
LD D,HX DD 54
LD D,LX DD 55
LD D,HY FD 54
LD D,LY FD 55
LD E,HX DD 5C
LD E,LX DD 5D
LD E,HY FD 5C
LD E,LY FD 5D
LD HX,A DD 67
LD HX,B DD 60
LD HX,C DD 61
LD HX,D DD 62
LD HX,E DD 63
LD HX,HX DD 64
LD HX,LX DD 65
LD HX,n DD 26 n
LD LX,A DD 6F
LD LX,B DD 68
LD LX,C DD 69
LD LX,D DD 6A
LD LX,E DD 6B
LD LX,HX DD 6C
LD LX,LX DD 6D
LD LX,n DD 2E n
LD HY,A FD 67
LD HY,B FD 60
LD HY,C FD 61
LD HY,D FD 62
LD HY,E FD 63
LD HY,HY FD 64
LD HY,LY FD 65
LD HY,n FD 26 n
LD LY,A FD 6F
LD LY,B FD 68
LD LY,C FD 69
LD LY,D FD 6A
LD LY,E FD 6B
LD LY,HY FD 6C
LD LY,LY FD 6D
LD LY,n FD 2E n
LD HX,(IX+d) DD 66 d
LD LX,(IX+d) DD 6E d
LD (IX+d),HX DD 74 d
LD (IX+d),LX DD 75 d
LD HY,(IY+d) FD 66 d
LD LY,(IY+d) FD 6E d
LD (IY+d),HY FD 74 d
LD (IY+d),LY FD 75 d
UWAGA: poniewaz prefiks 0DDH i 0FDH odnosi sie do wszystkich rejestrow
L,H,HL uzytych w rozkazie niemozliwe jest uzycie w rozkazie
rejestru L,H,HL lub (HL) jednoczesnie z HX,LX,HY lub LY.
2. Rozkazy rotacji i przesuniec
SLI (Shift Left and Increment), zwany tez SLS (Shift Left and Set)
lub DUPINC (DUPlicate and INCrement) - podwojenie argumentu i zwiekszenie
go o 1, bo do tego sprowadza sie wykonanie tego rozkazu: dziala on
analogicznie do SLA, tyle ze najmlodszy bit argumentu ustawiany jest na 1,
a nie na 0 (znaczniki ustawiane jak przy SLA):
rozkaz kod (HEX) il.cykli masz.
SLI A CB 37 8
SLI B CB 30 8
SLI C CB 31 8
SLI D CB 32 8
SLI E CB 33 8
SLI H CB 34 8
SLI L CB 35 8
SLI (HL) CB 36 15
SLI (IX+d) DD CB d 36 23
SLI (IY+d) FD CB d 36 23
3. Rozkazy inne
operacja(IX+d),r
operacja(IY+d),r - gdzie r to dowolny rejestr mikroprocesora.
Utworzenie rozkazu polega na prefiksowaniu kodem 0DDH lub 0FDH kodu
instrukcji "operacja r" typu RR r. Odnosi sie to rowniez do rozkazow
SET n,r; RES n,r - ale nie dla BIT n,r. Dzialanie rozkazu to wykonanie
instrukcji "operacja(IX+d)" lub "operacja(IY+d)" a nastepnie przeslanie
zawartosci komorki pamieci o adresie (IX+d) lub (IY+d) (wyniku dzialania
instrukcji) do odpowiedniego rejestru r.
Przykladowe sposoby tworzenia rozkazow (nie wszystkich mozliwych):
rozkaz pierwotny kod (HEX) rozkaz szukany kod (HEX)
RR A CB 07 RR (IX+d),A DD CB d 07
RL A CB 17 RL (IY+d),A FD CB d 17
RRC H CB 0C RRC (IX+d),H DD CB d 0C
RLC L CB 05 RLC (IY+d),L FD CB d 05
RES 4,B CB A0 RES (IX+d),B DD CB d A0
SET 6,C CB F1 SET (IY+d),C FD CB d F1
SLI D CB 32 SLI (IX+d),D DD CB d 32
itd.
M.K. 1992
Wyszukiwarka
Podobne podstrony:
Bon Jovi More Than We?rgained ForKiss Gimme moreZ80Depeche Mode More Than A PartyThe Modern Dispatch 076 More Starship Class Templatesebook Wine For Beginners Quench Your Thirst For More Wine KnowledgeBritney Spears Baby One More TimeEn Vogue I Love You MoreMORE DOWNLOADS from www wmasters euZ80 przykladyBusta Rhymes Gimme some moreBarry Manilow One More TimeColdplay No More Keeping My?et On The Groundwięcej podobnych podstron