DODATEK B --------- CPU:Programovací model, Mnemonika,Flagy, Druhy adresování B.1 Programovací model Z80 CPU ------------------------------ ______ ______ ______ ______ | A | | F | | A' | | F' | ------ ------ ------ ------ _______________ _______________ | BC | | BC' | --------------- --------------- _______________ _______________ | DE | | DE' | --------------- --------------- _______________ _______________ | HL | | HL' | --------------- --------------- _______________ ______ ______ | IX | | I | | R | --------------- ------ ------ _______________ | IY | --------------- _______________ | SP | --------------- _______________ | PC | --------------- Význam názvů registrů ________________________________________________________________ | název | význam | _______________________________________________________________| | A | | | F | | | BC | | | DE | | | HL | | | IX | | | IY | | | SP | | | PC | | | I | | | R | | | A" | | | F" | | | BC" | | | DE" | | | HL" | | ________________________________________________________________ str.78 Význam flagů: ------------- S Sign Obsahuje po aritmetických povelech předznaménko výsledku (B7) Předznaménko S=0 :pozitivní S=1:negativní Z Zero Udává,zda výsledek některé operace je nula Nula Z=0:výsledek<>0 ;Z=1:výsledek=0 H Halfcarry Obsahuje po aritmetických povelech přenos z nízkohodnotového půlbytu na Poloviční přenos vysokohodnotový půlbyte (B3 po B4) P Parity Obsahuje po logických povelech příčný součet výsledku Parita P=0:lichý (odd) P=1:sudý(even) V Owerflow Označuje přetečení po aritmetických povelech s čísly s předznaménkem Přetečení V=0:žádné přetečení V=1:přetečení N Subtract Označuje po aritmetických povelech typ povelu Odečítání N=0:sečítání N=1:odečítání (CPU používá k provedení povelu DAA) C Carry Obsahuje 8mi bitové sečítání nebo odčítání,přenos na devátý bit C=0:žádný přenos C=1:přenos B.2 Mnemonika (Symbolika) -------------------------- Následující tabulka udává v abecedním pořadí přehled o veškerých symbolech ve strojovém jazyce procesoru Z80 a jejich význam ________________________________________________________________ |Symbol | Význam (angl.) | Význam (česky) | _______________________________________________________________| | ADC |Add with carry |Sečti s přenosem | | ADD |Add |Sečti | | AND |AND |Operace "a" | | BIT |Bit test |Operace test bitů | | CALL |Call subroutine |Vyvolej podprogram | | CCF |Complement carry flag |Invertuj carry-flag | | CP |Compare |Porovnej | | CPD |Compare and decrement |Porovnej a poniž | | CPDR |Compare,decrement and repeat |Porovnej,poniž a opakuj| | CPI |Compare and increment |Porovnej a povyš | | CPIR |Compare increment and repeat |Porovnej,povyš a opakuj| | CPL |Complement |Invertuj | | DAA |Decimal adjust |Přizpůsob decimálně | | DEC |Decrement |Poniž | | DI |Disable interrupts |Zablokuj přerušení | | DJNZ |Decrement and jump relative |Poniž a relativně skoč | | |if not zero |když není nula | str79 | EI |Enable interrupts |Uvolni přerušení | | EX |Exchange |Zaměň | | EXX |Exchange register set |Zaměň sadu registrů | | HALT |Halt |Zastav | | IM |Set interrupt mode |Vlož mode přerušení | | IN |Input |Přijímej | | INC |Increment |Povyšuj | | IND |Input and decrement |Přijímej a poniž | | INDR |Input decrement and repeat |Přijímej,poniž a opakuj| | INI |Input and increment |Přijímej a povyš | | INIR |Input,increment and repeat |Přijímej,povyš a opakuj| | JP |Jump |Skoč | | JR |Jump relative |Relativně skoč | | LD |Load |Naber | | LDD |Load and decrement |Naber a poniž | | LDDR |Load decrement and repeat |Naber,poniž a opakuj | | LDI |Load and increment |Naber a povyš | | LDIR |Load,increment and repeat |Naber,povyš a opakuj | | NEG |Negate |Utvoř komplementární | | | |dvojici | | NOP |No operation |Žádné operace | | OR |OR |Operace "nebo" | | OTDR |Output,decrement and repeat |Vydej,poniž a opakuj | | OTIR |Output,increment and repeat |Vydej,povyš a opakuj | | OUT |Output |Vydej | | OUTD |Output and decrement |Vydej a poniž | | OUTI |Output and increment |Vydej a povyš | | POP |Pop |Vyber ze stohu (stacku)| | PUSH |Push |Ulož na stoh (stack) | | RES |Reset |Vrať do původní polohy | | RET |Return |Vrať se z podprogramu | | RETI |Return from interrupt |Vrať se zpět z | | | |přerušení | | RETN |Return from non maskable |Nevracej se od blokova-| | |interrupt |telného přerušení | | RL |Rotate left |Rotuj vlevo | | RLA |Rotate left Accumulator |Rotuj akumulátor vlevo | | RLC |Rotate left circular |Rotuj vlevo do kruhu | | RLCA |Rotate left circular Accumula-|Rotuj akumulátor vlevo | | |tor |do kruhu | | RLD |Rotate left digit |Rotuj vlevo o jedno | | | |číslo | | RR |Rotate right |Rotuj vpravo | | RRA |Rotate right Accumulator |Rotuj akumulátr vpravo | | RRC |Rotate right circular |Rotuj vpravo v kruhu | | RRCA |Rotate right circular Accumul.|Rotuj akumulátor vpravo| | | |v kruhu | | RRD |Rotate right digit |Rotuj vpravo o jedno | | | |číslo | | RST |Restart |Nový start | | SBC |Subtract with carry |Odečti s přenosem | | SCF |Set carry flag |Vysaď carry flag | | SET |Set |Vysaď | | SLA |Shift left arithmetic |Přesuň aritmeticky | | | |vlevo | | SRA |Shift right arithmetic |Přesuň aritmeticky | | | |vpravo | | SRL |Shift right logical |Přesuň logicky vpravo | | SUB |Subtract |Odečti | | XOR |Exclusive OR |Exclusivní "nebo" | ________________________________________________________________ str.80 B.3 POVELY,KTERÉ PŮSOBÍ NA FLAGY ---------------------------------- ____________________________ _______________________________ |Instrukce | Flagy #) | | Instrukce | Flagy #) | |____________|_____________| |_____________|_______________| | ADC A,... | S Z H V 0 C | | CPIR | S X H X 1 - | | ADC HL,... | S Z H V 0 C | | CPL | - - 1 - 1 - | | ADD A,... | S Z H V 0 C | | DAA | S Z H P - C | | ADD HL,... | - - H - 0 C | | DEC *) | S Z H V 1 - | | ADD IX,... | - - H - 0 C | | IN r (C) | S Z H P O - | | ADD IY,... | - - H - 0 C | | IN A (N) | S Z H V O - | | AND ... | S Z 1 P 0 0 | | INC *) | S Z H V 0 - | | BIT ... | ? Z 1 ? 0 - | | IND | ? X ? ? 1 - | | CCF | - - X - 0 X | | INDR | ? 1 ? ? 1 - | | CP | S Z H V 1 C | | INI | ? X ? ? 1 - | | CPD | S X H X 1 - | | INIR | ? 1 ? ? 1 - | | CPDR | S X H X 1 - | | LD A,I | S Z 0 X 0 - | | CPI | S X H X 1 - | | LD A,R | S Z 0 X 0 - | | | | | LDD | - - 0 X 0 - | |____________|_____________| |_____________|_______________| #) Význam znaků : S,Z,H,P/V,N,C Flag bude dle výsledku operace vysazen ? Flag je nedefinován 0 Flag je posazen na 0 - Flag zůstává nezměněn 1 Flag je posazen na 1 X Speciální případ Všechny ostatní povely ponechávají flagy beze změny *) Pouze povely B-bit DEC a INC ovlivňují flagy B.4 DRUHY ADRESOVÁNÍ ---------------------- Při operacích nabírání,aritmetických a logických operacích se zpravidla v povelu udávají dva operandy,kterými se operace provede.Následující druhy adresování jsou při tom možné. ________________________________________________________________ | Operand Zkratka | Druh adresování | |______________________________________________________________| |Není zadán žádný operand | žádná | implikovaně | |8 mi bitový registr A,B,C,D,E,H,L| r | registr | |16 bitový registr BC,DE,HL | rp | registr | |8 bitové číslo udané v instrukci | n | bezprostředně | |16 bitové číslo udané v instrukci| nm | bezprostředně | |Paměťová buňka jejíž adresa je | (nm) | přímo (absolutně)| |udaná v instrukci | | | |Pamět.buňka jejíž adresa je v | (rp) | registr nepřímo | |některém 16 bit.reg.BC,DE,HL | | | |Paměťová buňka jejíž adresa | (IX+d) | indikovaně | |vyplývá z čísla ze součtu regis- | (IY+d) | | |tru IX resp. IY udaného v povelu | | | |_________________________________|_________|__________________| str.81 Ve skokových povelech resp. v podprogramových výzvách se udává adresa skokové- ho cíle v instrukci. Následojící druhy adresování jsou při tom možné: ________________________________________________________________ | Skokový cíl |zkratka |druh adresování| |_____________________________________|___________|____________| | Adresa udávaná v instrukci | nm | přímo | |Od okamžité polohy programového poči-| |(absolutně) | |tadla o e bytů vpřed nebo zpět, | | | |přičemž e je hodnota udaná v povelu | e | relativní | |8 bitová s předznamenáním | | | |Adresa stojící v registrech HL,IX | (rp) | | |nebo IY | | | |_____________________________________|___________|____________| str.82 DODATEK C --------- Povelová věta :tabulky ---------------------- Zde najdete úolnou povelovou větu Z 80 CPU. Ke každému povelu je uveden účinek,ovlivnění flagu,počet bytů(#) doba provedení (T) jakož i hexadecimální Cp kód.Doba provedení je udána v cyklických taktech : 1 taktový cyklus trvá ve vašem počítači asi 0.28 mikrosekund(3.5 MHz (kmitočet taktu). Aby nebyly povelové tabulky příliš obsáhlé,bylo několik povelů sdruženo.Všude tam,kde ve sloupci "mnemocode" je r,může se provést povel pomocí některého dole uvedeného registru B....A Aby bylo možno zjistit Op kód žádaného povelu, není-li stanoveno jinak,je třeba k povelovému kódu přičíst příslušnou registro vou hodnotu "reg" podle dole uvedené tabulky. _________________________________________________ | r | B | C | D | E | H | L | A | |_____|_____|_____|_____|_____|_____|_____|_____| |reg | 0 | 1 | 2 | 3 | 4 | 5 | 7 | |_____|_____|_____|_____|_____|_____|_____|_____| Ve sloupci "flagy"mají jednotlivé znaky následující význam: S,Z,H,P,V,N,C Flag je ovlivněn podle výsledku operace - Flag zůstává nezměněn 1 Flag je posazen na 1 0 Flag je posazen na 0 ? Flag je nedefinován X,Y,U Zvláštní případ,povšimnout si poznámky na stejné straně Aritmetické povely ------------------ ________________________________________________________________ | Mnemonic | účinek | flagy | # | T | Hex kód | |______________|____________|_________|_____|_____|____________| | 8 -Bit Sčítání | |______________________________________________________________| | ADD A,r | A=A+r | SZHV0C | 1 | 4 | 80+reg | | ADD A,n | A=A+n | SZHV0C | 2 | 7 | C6,n | | ADD A,(HL) | A=A+(HL) | SZHV0C | 1 | 7 | 86 | | ADD A,(IX+d) | A=A+(IX+d) | SZHV0C | 3 | 19 | DD,86,d | | ADD A,(IY+d) | A=A+(IY+d) | SZHV0C | 3 | 19 | FD,86,d | | | | | | | | | ADC A,r | A=A+r+C | SZHV0C | 1 | 4 | 88+reg | | ADC A,n | A+A+n+C | SZHV0C | 2 | 7 | CE,n | | ADC A,(HL) | A=A+(HL)+C | SZHV0C | 1 | 7 | 8E | | ADC A,(IX+d) |A=A+(IX+d)+C| SZHV0C | 3 |19 | DD,8E,d | | ADC A,(IY+d) |A=A+(IY+d)+C| SZHV0C | 3 |19 | FD,8E,d | |--------------------------------------------------------------| str.83 |--------------------------------------------------------------- | 16-Bit Sčítání | |______________________________________________________________| | ADD HL,BC | HL=HL+BC | --H-0C | 1 |11 | 09 | | ADD HL,DE | HL=HL+DE | --H-0C | 1 |11 | 19 | | ADD HL,HL | HL=HL+HL | --H-0C | 1 |11 | 29 | | ADD HL,SP | HL=HL+SP | --H-0C | 1 |11 | 39 | | | | | | | | | ADD IX,BC | IX=IX+BC | --H-0C | 1 |15 | DD,09 | | ADD IX,DE | IX=IX+DE | --H-0C | 1 |15 | DD,19 | | ADD IX,IX | IX=IX+IX | --H-0C | 1 |15 | DD,29 | | ADD IX,SP | IX=IX+SP | --H-0C | 1 |15 | DD,39 | | | | | | | | | ADD IY,BC | IY=IY+BC | --H-0C | 1 |15 | FD,09 | | ADD IY+DE | IY=IY+DE | --H-0C | 1 |15 | FD,19 | | ADD IY,IY | IY=IY+IY | --H-0C | 1 |15 | FD,29 | | ADD IY,SP | IY=IY+SP | --H-0C | 1 |15 | FD,39 | | | | | | | | | ADC HL,BC | HL=HL+BC+C | SZHV0C | 2 |15 | ED,4A | | ADC HL,DE | HL=HL+DE+C | SZHV0C | 2 |15 | ED,5A | | ADC HL,HL | HL=HL+HL+C | SZHV0C | 2 |15 | ED,6A | | ADC HL,SP | HL=HL+SP+C | SZHV0C | 2 |15 | ED,7A | |______________|____________|_________|_____|_____|____________| | 8-Bit Odčítání | |______________________________________________________________| | SUB r | A=A-r | SZHV1C | 1 | 4 | 90+reg | | SUB n | A=A-n | SZHV1C | 2 | 7 | D6,n | | SUB (HL) | A=A-(HL) | SZHV1C | 1 | 7 | 96 | | SUB (IX+d) | A=A-(IX+d) | SZHV1C | 3 |19 | DD,96,d | | SUB (IY+d) | A=A-(IY+d) | SZHV1C | 3 |19 | FD,96,d | | | | | | | | | SBC A,r | A=A-r-C | SZHV1C | 1 | 4 | 98+re | | SBC A,n | A=A-n-C | SZHV1C | 2 | 7 | DE,n | | SBC A,(HL) | A=A-(HL)-C | SZHV1C | 1 | 7 | 9E | | SBC A,(IX+d) |A=A-(IX+d)-C| SZHV1C | 3 |19 | DD,9E,d | | SBC A,(IY+d) |A=A-(IY+d)-C| SZHV1C | 3 |19 | FD,9E,d | ---------------------------------------------------------------- | 16-Bit Odčítání | ---------------------------------------------------------------- | SBC HL,BC | HL=HL-BC-C | SZHV1C | 2 |15 | ED,42 | | SBC HL,DE | HL=HL-DE-C | SZHV1C | 2 |15 | ED,52 | | SBC HL,HL | HL=HL-HL-C | SZHV1C | 2 |15 | ED,62 | | SBC HL,SP | HL=HL-SP-C | SZHV1C | 2 |15 | ED,72 | ---------------------------------------------------------------- Povely increment a decrement (povyš a poniž) ________________________________________________________________ | Mnemonic | účinek | Flagy | # | T | Hex-kód | ---------------------------------------------------------------- | 8-Bit Increment | ---------------------------------------------------------------- | INC r | r=r+1 | SZHV0- | 1 | 4 | 04+08*reg | | INC(HL) | (HL)=(HL)+1 | SZHV0- | 1 |11 | 34 | | INC(IX+d) |(IX+d)=(IX+d)+1| SZHV0- | 3 |23 | DD,34,d | | INC(IY+d) |(IY+d)=(IY+d)+1| SZHV0- | 3 |23 | FD,34,d | |--------------------------------------------------------------| str.84 ---------------------------------------------------------------- | 16-Bit Increment | ---------------------------------------------------------------- | INC BC | BC=BC+1 | ------ | 1 | 6 | 03 | | INC DE | DE=DE+1 | ------ | 1 | 6 | 13 | | INC HL | HL=HL+1 | ------ | 1 | 6 | 23 | | INC SP | SP=SP+1 | ------ | 1 | 6 | 33 | | INC IX | IX=IX+1 | ------ | 2 |10 | DD,23 | | INC IY | IY=IY+1 | ------ | 2 |10 | FD,23 | ---------------------------------------------------------------- | 8-Bit Decrement | ---------------------------------------------------------------- | DEC r | r=r-1 | SZHV1- | 1 | 4 | 05+08*reg | | DEC(HL) | (HL)=(HL)-1 | SZHV1- | 1 |11 | 35 | | DEC(IX+d) |(IX+d)=(IX+d)-1| SZHV1- | 3 |23 | DD,35,d | | DEC(IY+d) |(iy+d)=(IY+d)-1| SZHV1- | 3 |23 | FD,35,d | ---------------------------------------------------------------- | 16-Bit Decrement | ---------------------------------------------------------------- | DEC BC | BC=BC-1 | ------ | 1 | 6 | 0B | | DEC DE | DE=DE-1 | ------ | 1 | 6 | 1B | | DEC HL | HL=HL-1 | ------ | 1 | 6 | 2B | | DEC SP | SP=SP-1 | ------ | 1 | 6 | 3B | | DEC IX | IX=IX-1 | ------ | 2 |10 | DD,2B | | DEC IY | IY=IY-1 | ------ | 2 |10 | FD,2B | ---------------------------------------------------------------- Logické povely ---------------------------------------------------------------- | Logické AND | ---------------------------------------------------------------- | AND r | A=A AND r | SZ1P00 | 1 | 4 | A0+reg | | AND n | A=A AND n | SZ1P00 | 2 | 7 | E6,n | | AND (HL) | A=A AND (HL) | SZ1P00 | 1 | 7 | A6 | | AND(IX+d) | A=A ANA (IX+d)| SZ1P00 | 3 |19 | DD,A6,d | | AND(IY+d) | A=A AND (IY+d)| SZ1P00 | 3 |19 | FD,A6,d | ---------------------------------------------------------------- | Logické OR | ---------------------------------------------------------------- | OR r | A=A OR r | SZ0P00 | 1 | 4 | B0+reg | | OR n | A=A OR n | SZ0P00 | 2 | 7 | F6,n | | OR (HL) | A=A OR (HL) | SZ0P00 | 1 | 7 | B6 | | OR(IX+d) | A=A OR (IX+d) | SZ0P00 | 3 |19 | DD,B6,d | | OR(IY+d) | A=A OR (IY+d) | SZ0P00 | 3 |19 | FD,B6,d | |--------------------------------------------------------------- | Logické XOR | ---------------------------------------------------------------- | XOR r | A=A XOR r | SZ0P00 | 1 | 4 | A8+reg | | XUR n | A=A XOR n | SZ0P00 | 2 | 7 | EE,n | | XOR (HL) | A=A XOR (HL) | SZ0P00 | 1 | 7 | AE | | XOR(IX+d)| A=A XOR (IX+d) | SZ0P00 | 3 |19 | DD,AE,d | | XOR(IY+d)| A=A XOR (IY+d) | SZ0P00 | 3 |19 | FD,AE,d ---------------------------------------------------------------- str.85 Bitové povely Pozn.-výrazy B0...B7 uvedené,za " ^ " jsou v exponentu ---------------------------------------------------------------- | Bit-TEST povely | ---------------------------------------------------------------- | BIT 0,r |r^B0 AND 1 | ?Z1?0- | 2 | 8 | CB,40+reg | | BIT 0,(HL) |(HL)^B0 AND 1 | ?Z1?0- | 2 |12 | CB,46 | | BIT 0,(IX+d)|(IX+d)^B0 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,46 | | BIT 0,(IY+d)|(IY+d)^B0 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,46 | | | | | | | | | BIT 1,r |r^B1 AND 1 | ?Z1?0- | 2 | 8 | CB,48+reg | | BIT 1,(HL) |(HL)^B1 AND 1 | ?Z1?0- | 2 |12 | CB,4E | | BIT 1,(IX+d)|(IX+d)^B1 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,4E | | BIT 1,(IY+d)|(IY+d)^B1 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,4E | | | | | | | | | BIT 2,r |r^B2 AND 1 | ?Z1?0- | 2 | 8 | CB,50+reg | | BIT 2,(HL) |(HL)^B2 AND 1 | ?Z1?0- | 2 |12 | CB,56 | | BIT 2,(IX+d)|(IX+d)^B2 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,56 | | BIT 2,(IY+d)|(IY+D)^B2 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,55 | | | | | | | | | BIT 3,r |r^B3 AND 1 | ?Z1?0- | 2 | 8 | CB,58+reg | | BIT 3,(HL) |(HL)^B3 AND 1 | ?Z1?0- | 2 |12 | CB,5E | | BIT 3,(IX+d)|(IX+d)^B3 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,5E | | BIT 3,(IY+d)|(IY+d)^B3 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,5E | | | | | | | | | BIT 4,r |r^B4 AND 1 | ?Z1?0- | 2 | 8 | CB,60+reg | | BIT 4,(HL) |(HL)^B4 AND 1 | ?Z1?0- | 2 |12 | CB,66 | | BIT 4,(IX+d)|(IX+d)^B4 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,66 | | BIT 4,(IY+d)|(IY+d)^B4 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,66 | | | | | | | | | BIT 5,r |r^B5 AND 1 | ?Z1?0- | 2 | 8 | CB,68+reg | | BIT 5,(HL) |(HL)^B5 AND 1 | ?Z1?0- | 2 |12 | CB,6E | | BIT 5,(IX+d)|(IX+d)^B5 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,6E | | BIT 5,(IY+d)|(IY+d)^B5 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,6E | | | | | | | | | BIT 6,r |r^B6 AND 1 | ?Z1?0- | 2 | 8 | CB,70+reg | | BIT 6,(HL) |(HL)^B6 AND 1 | ?Z1?0- | 2 |12 | CB,76 | | BIT 6,(IX+d)|(IX+d)^B6 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,76 | | BIT 6,(IY+d)|(IY+d)^B6 AND 1| ?Z1?0- | 4 |20 | FD,CB,d,76 | | | | | | | | | BIT 7,r |r^B7 AND 1 | ?Z1?0- | 2 | 8 | CB,78+reg | | BIT 7,(HL) |(HL)^B7 AND 1 | ?Z!?0- | 2 |12 | CB,7E | | BIT 7,(IX+d)|(IX+d)^B7 AND 1| ?Z1?0- | 4 |20 | DD,CB,d,7E | | BIT 7,(IY+d)|(IY+d)^B7 AND 1| ?Z!?0- | 4 |20 | FD,CB,d,7E | |--------------------------------------------------------------| str.86 ---------------------------------------------------------------- | Bit-SET povely | ---------------------------------------------------------------- | SET 0,r |r^B0=1 | ------ | 2 | 8 | CB,C0+reg | | SET 0,(HL) |(HL)^B0=1 | ------ | 2 |15 | CB,C6 | | SET 0,(IX+d)|(IX+d)^B0=1 | ------ | 4 |23 | DD,CB,d,C6 | | SET 0,(IY+d)|(IY+d)^B0=1 | ------ | 4 |23 | FD,CB,d,C6 | | | | | | | | | SET 1,r |r^B1=1 | ------ | 2 | 8 | CB,C8+reg | | SET 1,(HL) |(HL)^B1=1 | ------ | 2 |15 | CB,CE | | SET 1,(IX+d)|(IX+d)^B1=1 | ------ | 4 |23 | DD,CB,d,CE | | SET 1,(IY+d)|(IY+d)^B1=1 | ------ | 4 |23 | FD,CB,d,CE | | | | | | | | | SET 2,r |r^B2=1 | ------ | 2 | 8 | CB,D0+reg | | SET 2,(HL) |(HL)^B2=1 | ------ | 2 |15 | CB,D6 | | SET 2,(IX+d)|(IX+d)^B2=1 | ------ | 4 |23 | DD,CB,d,D6 | | SET 2,(IY+d)|(IY+d)^B2=1 | ------ | 4 |23 | FD,CB,d,D6 | | | | | | | | | SET 3,r |r^B3=1 | ------ | 2 | 8 | CB,D8+reg | | SET 3,(HL) |(HL)^B3=1 | ------ | 2 |15 | CB,DE | | SET 3,(IX+d)|(IX+d)^B3=1 | ------ | 4 |23 | DD,CB,d,DE | | SET 3,(IY+d)|(IY+d)^B3=1 | ------ | 4 |23 | FD,CB,d,DE | | | | | | | | | SET 4,r |r^B4=1 | ------ | 2 | 8 | CB,E0+reg | | SET 4,(HL) |(HL)^B4=1 | ------ | 2 |15 | CB,E6 | | SET 4,(IX+d)|(IX+d)^B4=1 | ------ | 4 |23 | DD,CB,d,E6 | | SET 4,(IY+d)|(IY+d)^B4=1 | ------ | 4 |23 | FD,CB,d,E6 | | | | | | | | | SET 5,r |r^B5=1 | ------ | 2 | 8 | CB,E8+reg | | SET 5,(HL) |(HL)^B5=1 | ------ | 2 |15 | CB,EE | | SET 5,(IX+d)|(IX+d)^B5=1 | ------ | 4 |23 | DD,CB,d,EE | | SET 5,(IY+d)|(IY+d)^B5=1 | ------ | 4 |23 | FD,CB,d,EE | | | | | | | | | SET 6,r |r^B6=1 | ------ | 2 | 8 | CB,F0+reg | | SET 6,(HL) |(HL)^B6=1 | ------ | 2 |15 | CB,F6 | | SET 6,(IX+d)|(IX+d)^B6=1 | ------ | 4 |23 | DD,CB,d,F6 | | SET 6,(IY+d)|(IY+d)^B6=1 | ------ | 4 |23 | FD,CB,d,F6 | | | | | | | | | SET 7,r |r^B7=1 | ------ | 2 | 8 | CB,F8+reg | | SET 7,(HL) |(HL)^B7=1 | ------ | 2 |15 | CB,FE | | SET 7,(IX+d)|(IX+d)^B7=1 | ------ | 4 |23 | DD,CB,d,FE | | SET 7,(IY+d)|(IY+d)^B7=1 | ------ | 4 |23 | FD,CB,d,FE | ---------------------------------------------------------------- | Bit-RESET povely | ---------------------------------------------------------------- | RES 0,r |r^B0=0 | ------ | 2 | 8 | CB,80+reg | | RES 0,(HL) |(HL)^B0=0 | ------ | 2 |15 | CB,86 | | RES 0,(IX+d)|(IX+d)^B0=0 | ------ | 4 |23 | DD,CB,d,86 | | RES 0,(IY+d)|(IY+d)^B0=0 | ------ | 4 |23 | FD,CB,d,86 | | | | | | | | | RES 1,r |r^B1=0 | ------ | 2 | 8 | CB,88+reg | | RES 1,(HL) |(HL)^B1=0 | ------ | 2 |15 | CB,8E | | RES 1,(IX+d)|(IX+d)^B1=0 | ------ | 4 |23 | DD,CB,d,8E | | RES 1,(IY+d)|(IY+d)^B1=0 | ------ | 4 |23 | FD,CB,d,8E | | | | | | | | | RES 2,r |r^B2=0 | ------ | 2 | 8 | CB,90+reg | | RES 2,(HL) |(HL)^B2=0 | ------ | 2 |15 | CB,96 | | RES 2,(IX+d)|(IX+d)^B2=0 | ------ | 4 |23 | DD,CB,d,96 | | RES 2,(IY+d)|(IY+d)^B2=0 | ------ | 4 |23 | FD,CB,d,96 | str.87 | | | | | | | | RES 3,r |r^B3=0 | ------ | 2 | 8 | CB,98+reg | | RES 3,(HL) |(HL)^B3=0 | ------ | 2 |15 | CB,9E | | RES 3,(IX+d)|(IX+d)^B3=0 | ------ | 4 |23 | DD,CB,d,9E | | RES 3,(IY+d)|(IY+d)^B3=0 | ------ | 4 |23 | FD,CB,d,9E | | | | | | | | | RES 4,r |r^B4=0 | ------ | 2 | 8 | CB,A0+reg | | RES 4,(HL) |(HL)^B4=0 | ------ | 2 |15 | CB,A6 | | RES 4,(IX+d)|(IX+d)^B4=0 | ------ | 4 |23 | DD,CB,d,A6 | | RES 4,(IY+d)|(IY+d)^B4=0 | ------ | 4 |23 | FD,CB,d,A6 | | | | | | | | | RES 5,r |r^B5=0 | ------ | 2 | 8 | CB,A8+reg | | RES 5,(HL) |(HL)^B5=0 | ------ | 2 |15 | CB,AE | | RES 5,(IX+d)|(IX+d)^B5=0 | ------ | 4 |23 | DD,CB,d,AE | | RES 5,(IY+d)|(IY+d)^B5=0 | ------ | 4 |23 | FD,CB,d,AE | | | | | | | | | RES 6,r |r^B6=0 | ------ | 2 | 8 | CB,B0+reg | | RES 6,(HL) |(HL)^B6=0 | ------ | 2 |15 | CB,B6 | | RES 6,(IX+d)|(IX+d)^B6=0 | ------ | 4 |23 | DD,CB,d,B6 | | RES 6,(IY+d)|(IY+d)^B6=0 | ------ | 4 |23 | FD,CB,d,B6 | | | | | | | | | RES 7,r |r^B7=0 | ------ | 2 | 8 | CB,B8+reg | | RES 7,(HL) |(HL)^B7=0 | ------ | 2 |15 | CB,BE | | RES 7,(IX+d)|(IX+d)^B7=0 | ------ | 4 |23 | DD,CB,d,BE | | RES 7,(IY+d)|(IY+d)^B7=0 | ------ | 4 |23 | FD,CB,d,BE | ---------------------------------------------------------------| ---------------------------------------------------------------- | Porovnávací povely | ---------------------------------------------------------------- | CP r | A-r | SZHV1C | 1 | 4 | B8+reg | | CP n | A-n | SZHV1C | 2 | 7 | FE,n | | CP(HL) | A-(HL) | SZHV1C | 1 | 7 | BE | | CP(IX+d) | A-(IX+d) | SZHV1C | 3 |19 | DD,BE,d | | CP(IY+d) | A-(IY+d) | SZHV1C | 3 |19 | FD,BE,d | ---------------------------------------------------------------- | Porovnávací povely s automatikou Increment/decrement | ---------------------------------------------------------------- | CPI | A-(HL),HL=HL+1 | SXHY1- | 2 |16 | ED,A1 | | | BC=BC-1 | | | | | | CPIR | A-(HL),HL=HL+1 | SXHY1- | 2 |16/21| ED,B1 | | | BC=BC-1, od BC=0| | | | | | | nebo (HL)=A | | | | | | | | | | | | | CPD | A-(HL),HL=HL-1 | SXHY1- | 2 |16 | ED,A9 | | | BC=BC-1 | | | | | | CPDR | A-(HL),HL=HL-1 | SXHY1- | 2 |16 | ED,B9 | | | BC=BC-1, od BC=0| | | | | | | nebo (HL)=A | | | | | ---------------------------------------------------------------- X bedeutet: Gesetzt,wenn A=(HL),sonst zurúckgesetzt Y bedeutet: Zurúckgesetzt,wenn BC=0 (nach der Ausfúhrung),sonst gesetzt str.88 Nabírací a ukládací povely ---------------------------------------------------------------- | 8-Bit Nabírací povely | ---------------------------------------------------------------- | LD A,r | A=r | ------ | 1 | 4 | 78+reg | | LD A,n | A=n | ------ | 2 | 7 | 3E,n | | LD A,(nm) | A=(nm) | ------ | 3 |13 | 3A,m,n | | LD A,(BC) | A=(BC) | ------ | 1 | 7 | 0A | | LD A,(DE) | A=(DE) | ------ | 1 | 7 | 1A | | LD A,(HL) | A=(HL) | ------ | 1 | 7 | 7E | | LD A,(IX+d)| A=(IX+d) | ------ | 3 |19 | DD,7E,d | | LD A,(IY+d)| A=(IY+d) | ------ | 3 |19 | FD,7E,d | | LD A,I | A=I | SZ0P0- | 2 | 9 | ED,57 | | LD A,R | A=R | SZ0P0- | 2 | 9 | ED,5F | | | | | | | | | LD B,r | B=r | ------ | 1 | 4 | 40+reg | | LD B,n | B=n | ------ | 2 | 7 | 06,n | | LD B,(HL) | B=(HL) | ------ | 1 | 7 | 46 | | LD B,(IX+d)| B=(IX+d) | ------ | 3 |19 | DD,46,d | | LD B,(IY+d)| B=(IY+d) | ------ | 3 |19 | FD,46,d | | | | | | | | | LD C,r | C=r | ------ | 1 | 4 | 48+reg | | LD C,n | C=n | ------ | 2 | 7 | 0E,n | | LD C,(HL) | C=(HL) | ------ | 1 | 7 | 4E | | LD C,(IX+d)| C=(IX+d) | ------ | 3 |19 | DD,4E,d | | LD C,(IY+d)| C=(IY+d) | ------ | 3 |19 | FD,4E,d | | | | | | | | | LD D,r | D=r | ------ | 1 | 4 | 5+reg | | LD D,n | D=n | ------ | 2 | 7 | 16,n | | LD D,(HL) | D=(HL) | ------ | 1 | 7 | 56 | | LD D,(IX+d)| D=(IX+d) | ------ | 3 |19 | DD,56,d | | LD D,(IY+d)| D=(IY+d) | ------ | 3 |19 | FD,56,d | | | | | | | | | LD E,r | E=r | ------ | 1 | 4 | 58+reg | | LD E,n | E=n | ------ | 2 | 7 | 1E,n | | LD E,(HL) | E=(HL) | ------ | 1 | 7 | 5E | | LD E,(IX+d)| E=(IX+d) | ------ | 3 |19 | DD,5E,d | | LD E,(IY+d)| E=(IY+d) | ------ | 3 |19 | FD,5E,d | | | | | | | | | LD H,r | H=r | ------ | 1 | 4 | 60+reg | | LD H,n | H=n | ------ | 2 | 7 | 26,n | | LD H,(HL) | H=(HL) | ------ | 1 | 7 | 66 | | LD H,(IX+d)| H=(IX+d) | ------ | 3 |19 | DD,66,d | | LD H,(IY+d)| H=(IY+D) | ------ | 3 |19 | FD,66,d | | | | | | | | | LD L,r | L=r | ------ | 1 | 4 | 68+reg | | LD L,n | L=n | ------ | 2 | 7 | 2E,n | | LD L,(HL) | L=(HL) | ------ | 1 | 7 | 6E | | LD L,(IX+d)| L=(IX+d) | ------ | 3 |19 | DD,6E,d | | LD L,(IY+d)| L=(IY+d) | ------ | 3 |19 | FD,6E,d | |--------------------------------------------------------------| str.89 ---------------------------------------------------------------- | 16-Bit Nabírací povely | ---------------------------------------------------------------- | LD BC,nm | BC=nm | ------ | 3 |10 | 01,m,n | | LD DE,nm | DE=nm | ------ | 3 |10 | 11,m,n | | LD HL,nm | HL=nm | ------ | 3 |10 | 21,m,n | | LD SP,nm | SP=nm | ------ | 3 |10 | 31,m,n | | LD IX,nm | IX=nm | ------ | 4 |14 | DD,21,m,n | | LD IY,nm | IY=nm | ------ | 4 |14 | FD,21,m,n | | | | | | | | | LD BC,(nm) |C=(nm),B=(nm+1) | ------ | 3 |20 | ED,4B,m,n | | LD DE,(nm) |L=(nm),H=(nm+1) | ------ | 3 |20 | ED,5B,m,n | | LD HL,(nm) |L=(nm),H=(nm+1) | ------ | 3 |16 | 2A,m,n | | LD SP,(nm) |SP^L=(nm), | ------ | 3 |20 | ED,7B,m,n | | |SP^H=(nm+1) | | | | | | LD IX,(nm) |IX^L=(nm), | ------ | 4 |20 | DD,2A,m,n | | |IX^H=(nm+1) | | | | | | LD IY,(nm) |IY^L=(nm), | ------ | 4 |20 | FD,2A,m,n | | |IY^H=(nm+1) | | | | | |--------------------------------------------------------------- | 8-Bit Povely zásobníku | |--------------------------------------------------------------- | LD (nm),A | (nm)=A | ------ | 3 |13 | 32,m,n | | LD (BC),A | (BC)=A | ------ | 1 | 7 | 02 | | LD (DE),A | (DE)=A | ------ | 1 | 7 | 12 | | LD I,A | I=A | ------ | 2 | 9 | ED,47 | | LD R,A | R=A | ------ | 2 | 9 | ED,4F | | | | | | | | | LD (HL),r | (HL)=r | ------ | 1 | 7 | 70+reg | | LD (HL),n | (HL)=n | ------ | 2 |10 | 36,n | | | | | | | | | LD (IX+d) | (IX+d)=r | ------ | 3 |19 |DD,70+reg,d| | LD (IX+d),n| (IX+d)=n | ------ | 3 |19 |DD,36,d,n | | | | | | | | | LD (IY+d),r| (IY+d)=r | ------ | 3 |19 |FD,70+reg,d| | LD (IY+d),n| (IY+d)=n | ------ | 3 |19 |FD,36,d,n | |--------------------------------------------------------------- | 16- Bit Povely zásobníku | |--------------------------------------------------------------| | LD (nm),BC |(nm)=c,(nm+1)=B | ------ | 3 |20 |ED,43,m,n | | LD (nm),DE |(nm)=E,(nm+1)=D | ------ | 3 |20 |ED,53,m,n | | LD (nm),HL |(nm)=L,(nm+1)=H | ------ | 3 |16 |22,m,n | | LD (nm),SP |(nm)=SP^L, | ------ | 3 |20 |ED,73,m,n | | |(nm+1)=SP^H | | | | | | LD (nm),IX |(nm)=IX^L | ------ | 4 |20 |DD,22,m,n | | |(nm+1)=IX^H | | | | | | LD (nm),IY |(nm)=IY^L, | ------ | 4 |20 |FD,22,m,n | | |(nm+1)=IY^H | | | | | | | | | | | | | LD SP,HL | SP=HL | ------ | 1 | 6 | F9 | | LD SP,IX | SP=IX | ------ | 2 |10 | DD,F9 | | LD SP,IY | SP=IY | ------ | 2 |10 | FD,F9 | |--------------------------------------------------------------| str.90 |--------------------------------------------------------------| | Povely záměny registrů | |--------------------------------------------------------------| | EX DE,HL | HL<-->DE | ------ | 1 | 4 | EB | | EX AF,AF' | AF<-->AF' |SZHp/VNC | 1 | 4 | 08 | | | | | | | | | EXX |BC<->BC',DE<->DE'| ------ | 1 | 4 | D9 | | |HL<->HL' | | | | | |--------------------------------------------------------------| | Blokové transferové povely | |--------------------------------------------------------------| | LDI |(DE)=(HL),DE=DE+1 | --0X0- | 2 |16 | ED,A0 | | |HL=HL+1,BC=BC-1 | | | | | | LDIR |(DE)=(HL),DE=DE+1 | --000- | 2 |16/21| ED,B0 | | |HL=HL+1,BC=BC-1doBC=0| | | | | | LDD |(DE)=(HL),DE=DE-1 | --0X0- | 2 |16 | ED,A8 | | |HL=HL-1,BC=BC-1 | | | | | | LDDR |(DE)=(HL),DE=DE-1 | --000- | 2 |16/21| ED,B8 | | |HL=HL-1,BC=BC-1doBC=0| | | | | ---------------------------------------------------------------- X bedeutet:zurůckgesetzt,wenn BC=0(nach der Ausfůhrung),sonst gesetzt. ---------------------------------------------------------------- | Povely Stacku | ---------------------------------------------------------------- |PUSH BC |SP=SP-1,(SP)=B | ------ | 1 |11 | C5 | | |SP=SP-1,(SP)=C | | | | | |PUSH DE |SP=SP-1,(SP)=D | ------ | 1 |11 | D5 | | |SP=SP-1,(SP)=E | | | | | |PUSH HL |SP=SP-1,(SP)=H | ------ | 1 |11 | E5 | | |SP=SP-1,(SP)=L | | | | | |PUSH AF |SP=SP-1,(SP)=A | ------ | 1 |11 | F5 | | |SP=SP-1,(SP)=F | | | | | |PUSH IX |SP=SP-1,(SP)=IX^H | ------ | 2 |15 | DD,E5 | | |SP=SP-1,(SP)=IX^L | | | | | |PUSH IY |SP=SP-1,(SP)=IY^H | ------ | 2 |15 | FD,E5 | | |SP=SP-1,(SP)=IY^L | | | | | | | | | | | | |POP BC |C=(SP),SP=SP+1 | ------ | 1 |10 | C1 | | |B=(SP),SP=SP+1 | | | | | |POP DE |E=(SP),SP=SP+1 | ------ | 1 |10 | D1 | | |D=(SP),SP=SP+1 | | | | | |POP HL |L=(SP),SP=SP+1 | ------ | 1 |10 | E1 | | |H=(SP),SP=SP+1 | | | | | |POP AF |F=(SP),SP=SP+1 | ------ | 1 |10 | F1 | | |A=(SP),SP=SP+1 | | | | | |POP IX |IX^L=(SP),SP=SP+1 | ------ | 2 |14 | DD,E1 | | |IX^H=(SP),SP=SP+1 | | | | | |POP IY |IY^L=(SP),SP=SP+1 | ------ | 2 |14 | FD,E1 | | |IY^H=(SP),SP=SP+1 | | | | | | | | | | | | |EX(SP),HL|(SP)<->L,(SP+1)<->H| ------ | 1 |19 | E3 | |EX(SP),IX|(SP)<->X^L | ------ | 2 |23 | DD,E3 | | |(SP+1)<->IX^H | | | | | |EX(SP),IY|(SP)<->IY^L | ------ | 2 |23 | FD,E3 | | |(SP+1)<->IY^H | | | | | ---------------------------------------------------------------- str.91 Přesouvací povely ---------------------------------------------------------------- | Bit-Přesouvací povely | ---------------------------------------------------------------- | | |-------------------------------------| | | | | |----| |----------------| | | | RL... | |-----| C |<-----| B7 <----- B0 |<-- | | | |----| |----------------| | | | Operand | ---------------------------------------------------------------- | RLA | s.o . | --0-0C | 1 | 4 | 17 | | RL r | s.o. | SZ0P0C | 2 | 8 | CB,10+reg | | RL (HL) | s.o. | SZ0P0C | 2 |15 | CB,16 | | RL (IX+d) | s.o. | SZ0P0C | 4 |23 | DD,CB,d,16| | RL (IY+d) | s.o | SZ0P0C | 4 |23 | FD,CB,d,15| ---------------------------------------------------------------- | | |-------------------------------------| | | | | |---------------| |----| | | | RR... | |---->| B7 ----> B0 |---->| C |----| | | | |---------------| |----| | | | Operand | ---------------------------------------------------------------- | RR A | s.o. | --0-0C | 1 | 4 | 1F | | RR r | s.o. | SZ0P0C | 2 | 8 | CB,18+reg | | RR (HL) | s.o. | SZ0P0C | 2 |15 | CB,1E | | RR (IX+d) | s.o. | SZ0P0C | 4 |23 | DD,CB,d,1E| | RR (IY+d) | s.o. | SZ0P0C | 4 |23 | FD,CB,d,1E| ---------------------------------------------------------------- | | |------------------------------| | | | |----| | |-----------------| | | | RLC ... | | C |<---o------| B7 <----- B0 |<----| | | | |----| |-----------------| | | | Operand | ---------------------------------------------------------------- | RLCA | s.o. | --0-0C | 1 | 4 | 07 | | RLC r | s.o. | SZ0P0C | 2 | 8 | CB,00+reg | | RLC (HL) | s.o. | SZ0P0C | 2 |15 | CB,06 | | RLC (IX+d)| s.o. | SZ0P0C | 4 |23 | DD,CB,d,06| | RLC (IY+d)| s.o. | SZ0P0C | 4 |23 | FD,CB,d,06| ---------------------------------------------------------------- | | |--------------------------| | | | | |-----------------| | |----| | | RRC... | |---->| B7 -----> B0 |--o--->| C | | | | |-----------------| |----| | | | Operand | ---------------------------------------------------------------- | RRC A | s.o. | --0-0C | 1 | 4 | 0F | | RRC r | s.o. | SZ0P0C | 2 | 8 | CB,08+reg | | RRC (HL) | s.o. | SZ0P0C | 2 |15 | CB,0E | | RRC (IX+d)| s.o. | SZ0P0C | 4 |23 | DD,CB,d,0E| | RRC (IY+d)| s.o. | SZ0P0C | 4 |23 | FD,CB,d,0E| |--------------------------------------------------------------|