Changes

Z80

20,662 bytes removed, 13:51, 1 September 2024
|}
{|{{Prettytable|width: 700px; font-size: 2em;}}|''Mnemonic''||''Clock''||''Size''||''SZHPNC''||''Opcode''||''Description||''Notes''|- style="background:#efefef;" |ADC A, r||4||1||rowspan=5|*** V0 *||88 + rb||rowspan=5|Add with Carry||rowspan=5|A = A + s + CY |- style="background:#efefef;"|ADC A, N||7||2||CE XX|- style="background:#efefef;"|ADC A, (HL)||7||1||8E|- style="background:#efefef;"|ADC A, (IX + N)||19||3||DD 8E XX |- style="background:#efefef;"|ADC A, (IY + N)||19||3||FD 8E XX |-|ADC HL, BC||15||2||rowspan=4|**? V0 *||ED 4A||rowspan=4|Add with Carry||rowspan=4|HL = HL + ss + CY |-|ADC HL, DE||15||2||ED 5A|-|ADC HL, HL||15||2||ED 6A |-|ADC HL, SP||15||2||ED 7A|- style="background:#efefef;"|ADD A, r||4||1||rowspan=5|*** V0 *||80 + rb||rowspan=5|Add (8-bit)||rowspan=5|A = A + s |- style="background:#efefef;"|ADD A, N||7||2||C6 XX |- style="background:#efefef;"|ADD A, (HL)||7||1||86|- style="background:#efefef;"|ADD A, (IX + N)||19||3||DD 86 XX|- style="background:#efefef;"|ADD A, (IY + N)||19||3||FD 86 XX|-|ADD HL, BC||11||1||rowspan=4|--?- 0 *||09||rowspan=4|Add (16-bit)||rowspan=4|HL = HL + ss |-|ADD HL, DE||11||1||19|-|ADD HL, HL||11||1||29|-|ADD HL, SP||11||1||39|- style="background:#efefef;"|ADD IX, BC||15||2||rowspan=4|--?- 0 *||DD 09||rowspan=4|Add (IX register)||rowspan=4|IX = IX + pp |- style="background:#efefef;"|ADD IX, DE||15||2||DD 19|- style="background:#efefef;"|ADD IX, IX||15||2||DD 29|- style="background:#efefef;"|ADD IX, SP||15||2||DD 39|- |ADD IY, BC||15||2||rowspan=4|--?- 0 *||FD 09||rowspan=4|Add (IY register)||rowspan=4|IY = IY + rr|-|ADD IY, DE||15||2||FD 19|-|ADD IY, IY||15||2||FD 29|-|ADD IY, SP||15||2||FD 39|- style="background:#efefef;"|AND r||4||1||rowspan=5|***P00||A0+rb||rowspan=5|Logical AND||rowspan=5|A=A&s|- style="background:#efefef;"|AND N||7||2||E6 XX|- style="background:#efefef;"|AND (HL)||7||1||A6|- style="background:#efefef;"|AND (IX+N)||19||3||DD A6 XX|- style="background:#efefef;"|AND (IY+N)||19||3||FD A6 XX|-|BIT b,r||8||2||rowspan=4|?*1?0-||CB 40+8*b+rb||rowspan=4|Test Bit||rowspan=4|m&{2^b}|-|BIT b,(HL)||12||2||CB 46+8*b|-|BIT b,(IX+N)||20||4||DD CB XX 46+8*b|-|BIT b,(IY+N)||20||4||FD CB XX 46+8*b|- style="background:#efefef;"|CALL NN||17||3||------||CD XX XX||Unconditional Call||-(SP)=PC,PC=nn|-|CALL C,NN||17/1||3||rowspan=8|------||DC XX XX||rowspan=8|Conditional Call||If Carry = 1|-|CALL NC,NN||17/1||3||D4 XX XX||If carry = 0|-|CALL M,NN||17/1||3||FC XX XX||If Sign = 1 (negative)|-|CALL P,NN||17/1||3||F4 XX XX||If Sign = 0 (positive)|-|CALL Z,NN||17/1||3||CC XX XX||If Zero = 1 (ans.=0)|-|CALL NZ,NN||17/1||3||C4 XX XX||If Zero = 0 (non-zero)|-|CALL PE,NN||17/1||3||EC XX XX||If Parity = 1 (even)|-|CALL PO,NN||17/1||3||E4 XX XX||If Parity = 0 (odd)|- style="background:#efefef;"|CCF||4||1||--?-0*||3F||Complement Carry Flag||CY=~CY|-|CP r||4||1||rowspan=5|***V1*||B8+rb||rowspan=5|Compare||rowspan=5|Compare A-s|-|CP N||7||2||FE XX|-|CP (HL)||7||1||BE|-|CP (IX+N)||19||3||DD BE XX|-|CP (IY+N)||19||3||FD BE XX|-|CPD||16||2||****1-||ED A9||Compare and Decrement||A-(HL),HL=HL-1,BC=BC-1|-|CPDR||21/1||2||****1-||ED B9||Compare, Dec., Repeat||CPD till A=(HL)or BC=0|-|CPI||16||2||****1-||ED A1||Compare and Increment||A-(HL),HL=HL+1,BC=BC-1|-|CPIR||21/1||2||****1-||ED B1||Compare, Inc., Repeat||CPI till A=(HL)or BC=0|- style="background:#efefef;"|CPL||4||1||--1-1-||2F||Complement||A=~A|-|DAA||4||1||***P-*||27||Decimal Adjust Acc.||A=BCD format (dec.)|- style="background:#efefef;"|DEC A||4||1||rowspan=10|***V1-||3D||rowspan=10|Decrement (8-bit)||rowspan=7|s=s-1|- |DEC B||4||1||05|- |DEC C||4||1||0D|- |DEC D||4||1||15|- |DEC E||4||1||1D|- |DEC H||4||1||25|- |DEC L||4||2||2D|- |DEC (HL)||11||1||35||(HL)=(HL)-1|- |DEC (IX+N)||23||3||DD 35 XX||rowspan=2|(xx-d)=(xx-d)+1|- |DEC (IY+N)||23||3||FD 35 XX|-|DEC BC||6||1||rowspan=4|------||0B||rowspan=4|Decrement (16-bit)||rowspan=4|ss=ss-1|-|DEC DE||6||1||1B|-|DEC HL||6||1||2B|-|DEC SP||6||1||3B|- style="background:#efefef;"|DEC IX||10||2||rowspan=2|------||DD 2B||rowspan=2|Decrement||rowspan=2|xx=xx-1|- style="background:#efefef;"|DEC IY||10||2||FD 2B|-|DI||4||1||------||F3||Disable Interrupts|||- style="background:#efefef;"|DJNZ $+2||13/8||1||------||10||Dec., Jump Non-Zero||B=B-1 till B=0|-|EI||4||1||------||FB||Enable Interrupts|||- style="background:#efefef;"|EX (SP),HL||19||1||rowspan=5|------||E3||rowspan=5|Exchange||(SP)<-br>HL|- style="background:#efefef;"|EX (SP),IX||23||2||DD E3||(SP)<->xx|- style="background:#efefef;"|EX (SP),IY||23||2||FD E3|||- style="background:#efefef;"|EX AF,AF'||4||1||08||AF<->AF'|- style="background:#efefef;"|EX DE,HL||4||1||EB||DE<->HL|- style="background:#efefef;"|EXX||4||1||------||D9||Exchange||qq<->qq' (except AF)|-|HALT||4||1||------||76||Halt|||- style="background:#efefef;"|IM 0||8||2||rowspan=3|------||ED 46||rowspan=3|Interrupt Mode ||rowspan=3|(n=0,1,2)|- style="background:#efefef;"|IM 1||8||2||ED 56|- style="background:#efefef;"|IM 2||8||2||ED 5E|- |IN A,(N)||11||2||------||DB XX||Input||A=(n)|-|IN (C)||12||2||***P0-||ED 70||Input*||(Unsupported)|-|IN A,(C)||12||2||rowspan=7|***P0-||ED 78||rowspan=7|Input||rowspan=7|r=(C)|-|IN B,(C)||12||2||ED 40|-|IN C,(C)||12||2||ED 48|-|IN D,(C)||12||2||ED 50|-|IN E,(C)||12||2||ED 58|-|IN H,(C)||12||2||ED 60|-|IN L,(C)||12||2||ED 68|- style="background:#efefef;"|INC A||4||1||rowspan=10|***V0-||3C||rowspan=10|Increment (8-bit)||rowspan=7|r=r+1|- style="background:#efefef;"|INC B||4||1||04|- style="background:#efefef;"|INC C||4||1||0C|- style="background:#efefef;"|INC D||4||1||14|- style="background:#efefef;"|INC E||4||1||1C|- style="background:#efefef;"|INC H||4||1||24|- style="background:#efefef;"|INC L||4||1||2C|-|INC (HL)||11||1||34||(HL)=(HL)+1|- style="background:#efefef;"|INC (IX+N)||23||3||DD 34 XX||rowspan=2|(xx+d)=(xx+d)+1|- style="background:#efefef;"|INC (IY+N)||23||3||FD 34 XX|- |INC BC||6||1||rowspan=4|------||03||rowspan=4|Increment (16-bit)||rowspan=4|ss=ss+1|-|INC DE||6||1||13|-|INC HL||6||1||23|-|INC SP||6||1||33|- style="background:#efefef;"|INC IX||10||2||rowspan=2|------||DD 23||rowspan=2|Increment||rowspan=2|xx=xx+1|- style="background:#efefef;"|INC IY||10||2||FD 23|-|IND||16||2||?*??1-||ED AA||Input and Decrement||(HL)=(C),HL=HL-1,B=B-1|-|INDR||21/1||2||?1??1-||ED BA||Input, Dec., Repeat||IND till B=0|-|INI||16||2||?*??1-||ED A2||Input and Increment||(HL)=(C),HL=HL+1,B=B-1|-|INIR||21/1||2||?1??1-||ED B2||Input, Inc., Repeat||INI till B=0|- style="background:#efefef;"|JP NN||10||3||rowspan=4|------||C3 XX XX||rowspan=4|Unconditional Jump||PC=nn|- style="background:#efefef;"|JP (HL)||4||1||E9||PC=(HL)|- style="background:#efefef;"|JP (IX)||8||2||DD E9||rowspan=2|PC=(xx)|- style="background:#efefef;"|JP (IY)||8||2||FD E9|- |JP C,$NN||10/1||3||rowspan=8|------||DA XX XX||rowspan=8|Conditional Jump||If Carry = 1|-|JP NC,$NN||10/1||3||D2 XX XX||If Carry = 0|-|JP M,$NN||10/1||3||FA XX XX||If Sign = 1 (negative)|-|JP P,$NN||10/1||3||F2 XX XX||If Sign = 0 (positive)|-|JP Z,$NN||10/1||3||CA XX XX||If Zero = 1 (ans.= 0)|-|JP NZ,$NN||10/1||3||C2 XX XX||If Zero = 0 (non-zero)|-|JP PE,$NN||10/1||3||EA XX XX||If Parity = 1 (even)|-|JP PO,$NN||10/1||3||E2 XX XX||If Parity = 0 (odd)|- style="background:#efefef;"|JR $N+2||12||2||------||18 XX||Relative Jump||PC=PC+e|- |JR C,$N+2||12/7||2||rowspan=4|------||38 XX||rowspan=4|Cond. Relative Jump||rowspan=4|If cc JR(cc=C,NC,NZ,Z)|-|JR NC,$N+2||12/7||2||30 XX|-|JR Z,$N+2||12/7||2||28 XX|-|JR NZ,$N+2||12/7||2||20 XX|- style="background:#efefef;"|LD I,A||9||2||rowspan=2|------||ED 47||rowspan=2|Load*||rowspan=2|dst=src|- style="background:#efefef;"|LD R,A||9||2||ED 4F|- |LD A,I||9||2||rowspan=2|**0*0-||ED 57||rowspan=2|Load*||rowspan=2|dst=src|-|LD A,R||9||2||ED 5F|- style="background:#efefef;"|LD A,r||4||1||rowspan=38|------||78+rb||rowspan=38|Load (8-bit)||rowspan=38|dst=src|- style="background:#efefef;"|LD A,N||7||2||3E XX|- style="background:#efefef;"|LD A,(BC)||7||1||0A|- style="background:#efefef;"|LD A,(DE)||7||1||1A|- style="background:#efefef;"|LD A,(HL)||7||1||7E|- style="background:#efefef;"|LD A,(IX+N)||19||3||DD 7E XX|- style="background:#efefef;"|LD A,(IY+N)||19||3||FD 7E XX|- style="background:#efefef;"|LD A,(NN)||13||3||3A XX XX|- style="background:#efefef;"|LD B,r||4||1||40+rb|- style="background:#efefef;"|LD B,N||7||2||06 XX|- style="background:#efefef;"|LD B,(HL)||7||1||46|- style="background:#efefef;"|LD B,(IX+N)||19||3||DD 46 XX|- style="background:#efefef;"|LD B,(IY+N)||19||3||FD 46 XX|- style="background:#efefef;"|LD C,r||4||1||48+rb|- style="background:#efefef;"|LD C,N||7||2||0E XX|- style="background:#efefef;"|LD C,(HL)||7||1||4E|- style="background:#efefef;"|LD C,(IX+N)||19||3||DD 4E XX|- style="background:#efefef;"|LD C,(IY+N)||19||3||FD 4E XX|- style="background:#efefef;"|LD D,r||4||1||50+rb|- style="background:#efefef;"|LD D,N||7||2||16 XX|- style="background:#efefef;"|LD D,(HL)||7||1||56|- style="background:#efefef;"|LD D,(IX+N)||19||3||DD 56 XX|- style="background:#efefef;"|LD D,(IY+N)||19||3||FD 56 XX|- style="background:#efefef;"|LD E,r||4||1||58+rb|- style="background:#efefef;"|LD E,N||7||2||1E XX|- style="background:#efefef;"|LD E,(HL)||7||1||5E|- style="background:#efefef;"|LD E,(IX+N)||19||3||DD 5E XX|- style="background:#efefef;"|LD E,(IY+N)||19||3||FD 5E XX|- style="background:#efefef;"|LD H,r||4||1||60+rb|- style="background:#efefef;"|LD H,N||7||2||26 XX|- style="background:#efefef;"|LD H,(HL)||7||1||66|- style="background:#efefef;"|LD H,(IX+N)||19||3||DD 66 XX|- style="background:#efefef;"|LD H,(IY+N)||19||3||FD 66 XX|- style="background:#efefef;"|LD L,r||4||1||68+rb|- style="background:#efefef;"|LD L,N||7||2||2E XX|- style="background:#efefef;"|LD L,(HL)||7||1||6E|- style="background:#efefef;"|LD L,(IX+N)||19||3||DD 6E XX|- style="background:#efefef;"|LD L,(IY+N)||19||3||FD 6E XX|- |LD BC,(NN)||20||4||rowspan=15|------||ED 4B XX XX ||rowspan=15|Load (16-bit)||rowspan=15|dst=src|- |LD BC,NN||10||3||01 XX XX|- |LD DE,(NN)||20||4||ED 5B XX XX|- |LD DE,NN||10||3||11 XX XX|- |LD HL,(NN)||20||3||2A XX XX|- |LD HL,NN||10||3||21 XX XX|- |LD SP,(NN)||20||4||ED 7B XX XX|- |LD SP,HL||6||1||F9|- |LD SP,IX||10||2||DD F9|- |LD SP,IY||10||2||FD F9|- |LD SP,NN||10||3||31 XX XX|- |LD IX,(NN)||20||4||DD 2A XX XX|- |LD IX,NN||14||4||DD 21 XX XX|- |LD IY,(NN)||20||4||FD 2A XX XX|- |LD IY,NN||14||4||FD 21 XX XX|- |LD (HL),r||7||1||rowspan=15|------||70+rb||rowspan=15|Load (Indirect)||rowspan=15|dst=src|-|LD (HL),N||10||2||36 XX|-|LD (BC),A||7||1||02|-|LD (DE),A||7||1||12|-|LD (NN),A||13||3||32 XX XX|-|LD (NN),BC||20||4||ED 43 XX XX|-|LD (NN),DE||20||4||ED 53 XX XX|-|LD (NN),HL||16||3||22 XX XX|-|LD (NN),IX||20||4||DD 22 XX XX|-|LD (NN),IY||20||4||FD 22 XX XX|-|LD (NN),SP||20||4||ED 73 XX XX|-|LD (IX+N),r||19||3||DD 70+rb XX|-|LD (IX+N),N||19||4||DD 36 XX XX|-|LD (IY+N),r||19||3||FD 70+rb XX|-|LD (IY+N),N||19||4||FD 36 XX XX|-|LDD||16||2||--0*0-||ED A8||Load and Decrement||(DE)=(HL),HL=HL-1,#|-|LDDR||21/1||2||--000-||ED B8||Load, Dec., Repeat||LDD till BC=0|-|LDI||16||2||--0*0-||ED A0||Load and Increment||(DE)=(HL),HL=HL+1,#|-|LDIR||21/1||2||--000-||ED B0||Load, Inc., Repeat||LDI till BC=0|-|NEG||8||2||***V1*||ED 44||Negate||A=-A|-|NOP||4||1||------||00||No Operation|||-|OR r||4||1||rowspan=5|***P00||B0+rb||rowspan=5|Logical inclusive OR||rowspan=5|A=Avs|-|OR N||7||2||F6 XX|-|OR (HL)||7||1||B6|-|OR (IX+N)||19||3||DD B6 XX|-|OR (IY+N)||19||3||FD B6 XX|-|OUT (N),A||11||2||rowspan=9|------||D3 XX||Output||(n)=A|-|OUT (C),0||12||2||ED 71||Output*||(Unsupported)|-|OUT (C),A||12||2||ED 79||rowspan=7|Output||rowspan=7|(C)=r|-|OUT (C),B||12||2||ED 41|-|OUT (C),C||12||2||ED 49|-|OUT (C),D||12||2||ED 51|-|OUT (C),E||12||2||ED 59|-|OUT (C),H||12||2||ED 61|-|OUT (C),L||12||2||ED 69|-|OUTD||16||2||?*??1-||ED AB||Output and Decrement||(C)=(HL),HL=HL-1,B=B-1|-|OTDR||21/1||2||?1??1-||ED BB||Output, Dec., Repeat||OUTD till B=0|-|OUTI||16||2||?*??1-||ED A3||Output and Increment||(C)=(HL),HL=HL+1,B=B-1|-|OTIR||21/1||2||?1??1-||ED B3||Output, Inc., Repeat||OUTI till B=0|-|POP AF||10||1||rowspan=4|------||F1||rowspan=4|Pop||rowspan=4|qq=(SP)+|-|POP BC||10||1||C1|-|POP DE||10||1||D1|-|POP HL||10||1||E1|-|POP IX||14||2||rowspan=2|------||DD E1||rowspan=2|Pop||rowspan=2|xx=(SP)+|-|POP IY||14||2||FD E1|-|PUSH AF||11||1||rowspan=4|------||F5||rowspan=4|Push||rowspan=4|(SP)=qq|-|PUSH BC||11||1||C5|-|PUSH DE||11||1||D5|-|PUSH HL||11||1||E5|-|PUSH IX||15||2||rowspan=2|------||DD E5||rowspan=2|Push||rowspan=2|-(SP)=xx|-|PUSH IY||15||2||FD E5||-|RES b,r||8||2||rowspan=4|------||CB 80+8*b+rb||rowspan=4|Reset bit||rowspan=4|m=m&{~2^b}|-|RES b,(HL)||15||2||CB 86+8*b|-|RES b,(IX+N)||23||4||DD CB XX 86+8*b|-|RES b,(IY+N)||23||4||FD CB XX 86+8*b|-|RET||10||1||rowspan=9|------||C9||Return||PC=(SP)+|-|RET C||11/5||1||D8||rowspan=8|Conditional Return||If Carry = 1|-|RET NC||11/5||1||D0||If Carry = 0|-|RET M||11/5||1||F8||If Sign = 1 (negative)|-|RET P||11/5||1||F0||If Sign = 0 (positive)|-|RET Z||11/5||1||C8||If Zero = 1 (ans.=0)|-|RET NZ||11/5||1||C0||If Zero = 0 (non-zero)|-|RET PE||11/5||1||E8||If Parity = 1 (even)|-|RET PO||11/5||1||E0||If Parity = 0 (odd)|-|RET||10||1||------||C9||Return||PC=(SP)+|-|RET C||11/5||1||rowspan=8|------||D8||rowspan=8|Conditional Return||If Carry = 1|-|RET NC||11/5||1||D0||If Carry = 0|-|RET M||11/5||1||F8||If Sign = 1 (negative)|-|RET P||11/5||1||F0||If Sign = 0 (positive)|-|RET Z||11/5||1||C8||If Zero = 1 (ans.=0)|-|RET NZ||11/5||1||C0||If Zero = 0 (non-zero)|-|RET PE||11/5||1||E8||If Parity = 1 (even)|-|RET PO||11/5||1||E0||If Parity = 0 (odd)|-|RETI||14||2||------||ED 4D||Return from Interrupt||PC=(SP)+|-|RETN||14||2||------||ED 45||Return from NMI||PC=(SP)+|-|RLA||4||1||--0-0*||17||Rotate Left Acc.||A={CY,A}<-|-|RL r||8||2||rowspan=4|**0P0*||CB 10+rb||rowspan=4|Rotate Left||rowspan=4|m={CY,m}<-|-|RL (HL)||15||2||CB 16|-|RL (IX+N)||23||4||DD CB XX 16|-|RL (IY+N)||23||4||FD CB XX 16|-|RLCA||4||1||--0-0*||07||Rotate Left Cir. Acc.||A=A<-|-|RLC r||8||2||rowspan=4|**0P0*||CB 00+rb||rowspan=4|Rotate Left Circular||rowspan=4|m=m<-|-|RLC (HL)||15||2||CB 06|-|RLC (IX+N)||23||4||DD CB XX 06|-|RLC (IY+N)||23||4||FD CB XX 06|-|RLD||18||2||**0P0-||ED 6F||Rotate Left 4 bits||{A,(HL)}={A,(HL)}<- ##|-|RRA||4||1||--0-0*||1F||Rotate Right Acc.||A=->{CY,A}|-|RR r||8 ||2||rowspan=4|**0P0*||CB 18+rb||rowspan=4|Rotate Right||rowspan=4|m=->{CY,m}|-|RR (HL)||15||2||CB 1E|-|RR (IX+N)||23||4||DD CB XX 1E|-|RR (IY+N)||23||4||FD CB XX 1E|-|RRCA||4||1||--0-0*||0F||Rotate Right Cir.Acc.||A=->A|-|RRC r||8||2||rowspan=4|**0P0*||CB 08+rb||rowspan=4|Rotate Right Circular||rowspan=4|m=->m|-|RRC (HL)||15||2||CB 0E|-|RRC (IX+N)||23||4||DD CB XX 0E|-|RRC (IY+N)||23||4||FD CB XX 0E|-|RRD||18||2||**0P0-||ED 67||Rotate Right 4 bits||{A,(HL)}=->{A,(HL)} ##|-|RST 0||11||1||rowspan=8|------||C7||rowspan=8|Restart||rowspan=8|(p=0H,8H,10H,...,38H)|-|RST 08H||11||1||CF|-|RST 10H||11||1||D7|-|RST 18H||11||1||DF|-|RST 20H||11||1||E7|-|RST 28H||11||1||EF|-|RST 30H||11||1||F7|-|RST 38H||11||1||FF|-|SBC r||4||1||rowspan=5|***V1*||98+rb|| rowspan=5|Subtract with Carry|| rowspan=5|A=A-s-CY|-|SBC A,N||7||2||DE XX|-|SBC (HL)||7||1||9E|-|SBC A,(IX+N)||19||3||DD 9E XX|-|SBC A,(IY+N)||19||3||FD 9E XX|-|SBC HL,BC||15||2||rowspan=4|**?V1*||ED 42||rowspan=4|Subtract with Carry||rowspan=4|HL=HL-ss-CY|-|SBC HL,DE||15||2||ED 52|-|SBC HL,HL||15||2||ED 62|-|SBC HL,SP||15||2||ED 72|-|SCF||4||1||--0-01||37||Set Carry Flag||CY=1|-|SET b,r||8||2||rowspan=4|------||CB C0+8*b+rb||rowspan=4|Set bit||rowspan=4|m=mv{2^b}|-|SET b,(HL)||15||2||CB C6+8*b|-|SET b,(IX+N)||23||4||DD CB XX C6+8*b|-|SET b,(IY+N)||23||4||FD CB XX C6+8*b|-|SLA r||8||2||rowspan=4|**0P0*||CB 20+rb||rowspan=4|Shift Left Arithmetic||rowspan=4|m=m*2|-|SLA (HL)||15||2||CB 26|-|SLA (IX+N)||23||4||DD CB XX 26|-|SLA (IY+N)||23||4||FD CB XX 26|-|SRA r||8||2||rowspan=4|**0P0*||CB 28+rb||rowspan=4|Shift Right Arith.||rowspan=4|m=m/2|-|SRA (HL)||15||2||CB 2E|-|SRA (IX+N)||23||4||DD CB XX 2E|-|SRA (IY+N)||23||4||FD CB XX 2E|-|SLL r||8||2||rowspan=4|**0P0*||CB 30+rb||rowspan=4|Shift Left Logical*||rowspan=4|m={0,m,CY}<-(SLL Instructionsare unsupported)|-|SLL (HL)||15||2||CB 36|-|SLL (IX+N)||23||4||DD CB XX 36|-|SLL (IY+N)||23||4||FD CB XX 36|-|SRL r||8||2||rowspan=4|**0P0*||CB 38+rb||rowspan=4|Shift Right Logical||rowspan=4|m=->{0,m,CY}|-|SRL (HL)||15||2||CB 3E|-|SRL (IX+N)||23||4||DD CB XX 3E|-|SRL (IY+N)||23||4||FD CB XX 3E|-|SUB r||4||1||rowspan=5|***V1*||90+rb||rowspan=5|Subtract||rowspan=5|A=A-s|-|SUB N||7||2||D6 XX|-|SUB (HL)||7||1||96|-|SUB (IX+N)||19||3||DD 96 XX|-|SUB (IY+N)||19||3||FD 96 XX|-|XOR r||4||1||rowspan=5|***P00||A8+rb||rowspan=5|Logical Exclusive OR||rowspan=5|A=Axs|-|XOR N||7||2||EE XX|-|XOR (HL)||7||1||AE|-|XOR (IX+N)||19||3||DD AE XX|-|XOR (IY+N)||19||3||FD AE XX|} == CPC Timings == {| class="wikitable sortable"!Instruction!µs!Size!I/O|-|ADC/ADD/SBC/SUB A, (HL)|2|1||-|ADC/ADD/SBC/SUB A, (IX/IY+d)|5|3||-|ADC/ADD/SBC/SUB A, A/B/C/D/E/H/L|1|1||-|ADC/ADD/SBC/SUB A, HX/LX/HY/LY|2|2||-|ADC/ADD/SBC/SUB A, d|2|2||-|ADD/SUB HL, BC/DE/HL/SP|3|1||-|ADD/SUB IX/IY, BC/DE/HL/SP|4|2||-|AND/OR/XOR A, (HL)|2|1||-|AND/OR/XOR A, (IX/IY+d)|5|3||-|AND/OR/XOR A, A/B/C/D/E/H/L|1|1||-|AND/OR/XOR A, HX/LX/HY/LY|2|2||-|AND/OR/XOR A, d|2|2||-|BIT x, (HL)|3|2||-|BIT x, (IX/IY+d)|6|4||-|BIT x, A/B/C/D/E/H/L|2|2||-|CALL cond, aa|5/3|3||-|CALL aa|5|3||-|CCF/SCF|1|1||-|CP A, (HL)|2|1||-|CP A, (IX/IY+d)|5|3||-|CP A, A/B/C/D/E/H/L|1|1||-|CP A, HX/LX/HY/LY|2|2||-|CP A, d|2|2||-|CPD/CPI|4|2||-|CPDR/CPIR|6/4|2||-|CPL|1|1||-|DAA|1|1||-|DEC/INC (HL)|3|1||-|DEC/INC (IX/IY+d)|6|3||-|DEC/INC A/B/C/D/E/H/L|1|1||-|DEC/INC HX/LX/HY/LY|2|2||-|DEC/INC BC/DE/HL/SP|2|1||-|DEC/INC IX/IY|3|2||-|DI/EI|1|1||-|DJNZ|4/3|2||-|EX (SP), HL|6|1||-|EX (SP), IX/IY|7|2||-|EX AF, AF’|1|1||-|EX DE, HL|1|1||-|EXX|1|1||-|HALT|1|1||-|IM m|2|2||-|IN A/B/C/D/E/H/L, (C)|4|2|4|-|IN A, (d)|3|2|3|-|IN F|4|2|4|-|IND/INI|5|2|4|-|INDR/INIR|6/5|2|4|-|JP aa|3|3||-|JP cond, aa|3|3||-|JP (HL)|1|1||-|JP (IX/IY)|2|2||-|JR a|3|2||-|JR cond, a|3/2|2||-|LD (BC/DE), A|2|1||-|LD (HL), A/B/C/D/E/H/L|2|1||-|LD (HL),d|3|2||-|LD (IX/IY+d), A/B/C/D/E/H/L|5|3||-|LD (IX/IY+d), d’|6|4||-|LD (aa), A|4|3||-|LD (aa), BC/DE/SP/IX/IY|6|4||-|LD (aa), HL|5|3||-|LD A, (BC/DE)|2|1||-|LD A/B/C/D/E/H/L, (HL)|2|1||-|LD A/B/C/D/E/H/L, (IX/IY+d)|5|3||-|LD A,(aa)|4|3||-|LD A/B/C/D/E/H/L, A/B/C/D/E/H/L|1|1||-|LD A/B/C/D/E/H/L, d|2|2||-|LD HX/LX, A/B/C/D/E/HX/LX|2|3||-|LD HY/LY, A/B/C/D/E/HY/LY|2|3||-|LD BC/DE/HL/SP, dd|3|3||-|LD IX/IY, dd|4|4||-|LD SP, IX/IY|3|2||-|LD SP, HL|2|1||-| LD HX/LX/HY/LY, d|3|3||-|LD BC/DE/HL/SP/IX/IY, (aa)|6|4||-|LD HL, (aa)|5|3||-|LD A, I/R|3|2||-|LD I/R, A|3|2||-|LDD/LDI|5|2||-|LDDR/LDIR|6/5|2||-|NEG|2|2||-|NOP|1|1||-|OUT (C), A/B/C/D/E/H/L|4|2|3*|-|OUT (C), 0|4|2|3*|-|OUT (d), A|3|2|3|-|OUTD/OUTI|5|2|5|-|OTDR/OTIR|6/5|2|5|-|POP AF/BC/DE/HL|3|1||-|POP IX/IY|4|2||-|PUSH AF/BC/DE/HL|4|1||-|PUSH IX/IY|5|2||-|RES/SET x, (HL)|4|2||-|RES/SET x, (IX/IY+d)|7|4||-|RES/SET x, (IX/IY+d), A/B/C/D/E/H/L|7|4||-|RES/SET x, A/B/C/D/E/H/L|2|2||-|RET|3|1||-|RET cond|4/2|1||-|RETI/RETN|4|2||-|RL/RLC/RR/RRC/SLA/SLL/SRA/SRL (HL)|4|2||-|RL/RLC/RR/RRC/SLA/SLL/SRA/SRL (IX/IY+d)|7|4||-|RL/RLC/RR/RRC/SLA/SLL/SRA/SRL (IX/IY+d), A/B/C/D/E/H/L|7|4||-|RL/RLC/RR/RRC/SLA/SLL/SRA/SRL A/B/C/D/E/H/L|2|2||-|RLA/RLCA/RRA/RRCA|1|1||-|RLD/RRD|5|2||-|RST 0/08h/10h/18h/20h/28h/30h/38h|4|1||} Notes:*x=[0..7], d=[0..ff], m=[0..2], aa=[0..ffff], a=[0..ff]* * Some exceptions exist* All instructions containing (IX/IY+d) add 3µs and 2 bytes compared to their (HL) variants
== Oddities ==
13,173
edits