Eneg�NEGate. Subtracts the contents of the accumulator from zero, making it negative for the purpose of two's complement. P/V is set if A previously held $80. C is set if accumulator did not previously hold $00. negNEG
0https://www.zilog.com/docs/z80/z80cpu_um.pdf#NEG ind�<INput and Decrement. Inputs a value from port BC into memory at the address stored in HL, then decrements HL and decrements B. Because B is decremented and is part of the port number, the port number for future INI instructions will change unless it is reset. Z is set if B reached 0; C, S, H, and P/V are destroyed. indIND 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#IND rrd�Rotate Right bcd Digit. Same as RLD, but the order is: the lower nibble pointed to by HL, the lower nibble of the A, and the upper nibble of the byte. rrdRRD 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#RRD dec�DECrment. Decrements the target by one. Flag effects are the same as INC except H refers to borrow, not carry; and P/V is set if the target held $80. decDEC (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20%28HL%29 dec
DEC (IX+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20%28IX%2Bo%29 dec
DEC (IY+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20%28IY%2Bo%29 decDEC A 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20A decDEC B 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20B decDEC BC 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20BC decDEC C 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20C decDEC D 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20D decDEC DE 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20DE decDEC E 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20E decDEC H 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20H decDEC HL 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20HL decDEC IX
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20IX decDEC IY
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20IY decDEC IXp
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20IXp decDEC IYq
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20IYq decDEC L 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20L decDEC SP 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DEC%20SP in<Inputs a byte value from the 16-bit port number given in BC. in IN A, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20A%2C%20%28C%29 in IN A, (n)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20A%2C%20%28n%29 in IN B, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20B%2C%20%28C%29 in IN C, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20C%2C%20%28C%29 in IN D, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20D%2C%20%28C%29 in IN E, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20E%2C%20%28C%29 in IN H, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20H%2C%20%28C%29 in IN L, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20L%2C%20%28C%29 in IN F, (C)
@https://www.zilog.com/docs/z80/z80cpu_um.pdf#IN%20F%2C%20%28C%29 ei�Enable Interrupts. Enables maskable interrupts (after next instruction, i.e. for example: EI RET - the interrupt may happen only after RET instruction is finished (or EI DI pair of instructions will not allow any maskable interrupt to happen). eiEI /https://www.zilog.com/docs/z80/z80cpu_um.pdf#EI rst�ReSTart. Performs a CALL to a routine located at one of eight fixed locations ($00, $08, ..., $38) in the zero page. This is located in ROM, and on the Spectrum only a limited number of values are useful to call built-in ROM routines. rstRST 0 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%200 rstRST 8H 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%208H rstRST 10H 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%2010H rstRST 18H 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%2018H rstRST 20H 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%2020H rstRST 28H 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%2028H rstRST 30H 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%2030H rstRST 38H 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#RST%2038H callpLike JP (including the ability to have conditions), but PUSHes the PC before jumping. Used for subroutine calls. callCALL nn 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20nn call
CALL C, nn
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20C%2C%20nn call
CALL M, nn
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20M%2C%20nn callCALL NC, nn
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20NC%2C%20nn callCALL NZ, nn
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20NZ%2C%20nn call
CALL P, nn
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20P%2C%20nn callCALL PE, nn
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20PE%2C%20nn callCALL PO, nn
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20PO%2C%20nn call
CALL Z, nn
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#CALL%20Z%2C%20nn or!Performs the bitwise OR operator. orOR (HL) :https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20%28HL%29 or OR (IX+o) >https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20%28IX%2Bo%29 or OR (IY+o) >https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20%28IY%2Bo%29 orOR n 3https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20n orOR r 3https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20r orOR IXp
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20IXp orOR IYq
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#OR%20IYq djnz}Decrement reg. b and Jump if Not Zero. Decrements B then performs JR NZ.. to the given address. Used for encapsulating loops. djnzDJNZ o
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#DJNZ%20o inir�DINput and Increment Repeated. Loops INI until B reaches 0, so that if INIR starts with B=0 it loops 256 times. Because B is decremented during this process and is part of the port number, this is unlikely to be useful except when the upper byte of the port number is not relevant. Interrupts are recognized during execution. inirINIR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#INIR rr[Rotate Right. Rotates the target bitwise right by one position. The LSB is copied to Carry. rrRR (HL) :https://www.zilog.com/docs/z80/z80cpu_um.pdf#RR%20%28HL%29 rr RR (IX+o)
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#RR%20%28IX%2Bo%29 rr RR (IY+o)
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#RR%20%28IY%2Bo%29 rrRR r
3https://www.zilog.com/docs/z80/z80cpu_um.pdf#RR%20r otdr�Out and Decrement Repeated. except that it outputs instead of inputs and B is decremented before the output instead of after. Condition check on B is performed after, so that if OTIR starts with B=0 it loops 256 times. otdrOTDR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#OTDR mulubLPerform 8-bit multiplication. Introduced as a new instruction with the R800. mulub
MULUB A, r =https://www.zilog.com/docs/z80/z80cpu_um.pdf#MULUB%20A%2C%20r rrcaQSame as RRC except it only works on A, is faster, and does not alter S, Z or P/V. rrcaRRCA 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#RRCA rl�gRotate Left. Rotates the target bitwise left by one position. The MSB is copied to Carry. The previous contents of Carry are copied to bit 0. Can be applied to any 8-bit register or to a location in memory pointed to by HL or indexed via IX or IY. The final alternative is undocumented, and stores the result in a register as well as performing the operation. rlRL (HL) :https://www.zilog.com/docs/z80/z80cpu_um.pdf#RL%20%28HL%29 rl RL (IX+o)
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#RL%20%28IX%2Bo%29 rl RL (IY+o)
>https://www.zilog.com/docs/z80/z80cpu_um.pdf#RL%20%28IY%2Bo%29 rlRL r
3https://www.zilog.com/docs/z80/z80cpu_um.pdf#RL%20r xor"Performs the bitwise XOR operator. xorXOR (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20%28HL%29 xor
XOR (IX+o) ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20%28IX%2Bo%29 xor
XOR (IY+o) ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20%28IY%2Bo%29 xorXOR n 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20n xorXOR r 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20r xorXOR IXp
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20IXp xorXOR IYq
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#XOR%20IYq lddr� LoaD and Decrement Repeated. Automatically loops LDD until BC reaches zero. Note the last iteration starts when BC=1 and ends with BC=0 (starting the LDDR with BC=0 will start 64kiB transfer, most likely overwriting vital parts of system memory and/or code itself). lddrLDDR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#LDDR halt�Suspends the CPU until an interrupt is received (maskable interrupts must be enabled to break the wait). While CPU is waiting for interrupt, the fake NOP instruction is being executed, to keep memory refresh going on. haltHALT 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#HALT ini�>INput and Incremenent. Inputs a value from port BC into memory at the address stored in HL, then increments HL and decrements B. Because B is decremented and is part of the port number, the port number for future INI instructions will change unless it is reset. Z is set if B reached 0; C, S, H, and P/V are destroyed. iniINI 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#INI daa�Decimal Adjust Accumulator. Modifies the contents of the accumulator based on the flags left by previous operation to correct for binary coded decimal (BCD). daaDAA 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#DAA rlc�ORotate Left Circular. Rotates the target bitwise left by one position. The MSB is copied to bit 0, and also to Carry. Can be applied to any 8-bit register or to a location in memory pointed to by HL or indexed via IX or IY. The final alternative is undocumented, and stores the result in a register as well as performing the operation. rlcRLC (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#RLC%20%28HL%29 rlc
RLC (IX+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#RLC%20%28IX%2Bo%29 rlc
RLC (IY+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#RLC%20%28IY%2Bo%29 rlcRLC r
4https://www.zilog.com/docs/z80/z80cpu_um.pdf#RLC%20r sbc�MSuBtract with Carry, er, borrow. Subtracts values, subtracting an additional 1 if Carry is set. Legal combinations are the same as for ADD, although there are no extended opcode versions of SBC and in 16-bit values the first parameter can only be HL. For 16-bit values the H flag is set if borrow from bit 12; otherwise, it is reset. sbcSBC A, (HL) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20%28HL%29 sbc
SBC A, (IX+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20%28IX%2Bo%29 sbc
SBC A, (IY+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20%28IY%2Bo%29 sbcSBC A, n ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20n sbcSBC A, r ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20r sbc
SBC A, IXp
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20IXp sbc
SBC A, IYq
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20A%2C%20IYq sbc
SBC HL, BC =https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20HL%2C%20BC sbc
SBC HL, DE =https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20HL%2C%20DE sbc
SBC HL, HL =https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20HL%2C%20HL sbc
SBC HL, SP =https://www.zilog.com/docs/z80/z80cpu_um.pdf#SBC%20HL%2C%20SP retnZRETurn from Non-maskable interrupt. Returns from a non-maskable interrupt service routine. retnRETN 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#RETN ldir�PLoaD and Increment Repeated. Automatically loops LDI until BC reaches zero. Note the last iteration starts when BC=1 and ends with BC=0 (starting the LDIR with BC=0 will start 64kiB transfer, most likely overwriting vital parts of system memory and/or code itself). Flag effects are the same as LDI except that P/V will always be reset. ldirLDIR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#LDIR jp jpJP nn
4https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20nn jpJP (HL) :https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20%28HL%29 jpJP (IX)
:https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20%28IX%29 jpJP (IY)
:https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20%28IY%29 jpJP C, nn
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20C%2C%20nn jpJP M, nn
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20M%2C%20nn jp JP NC, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20NC%2C%20nn jp JP NZ, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20NZ%2C%20nn jpJP P, nn
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20P%2C%20nn jp JP PE, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20PE%2C%20nn jp JP PO, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20PO%2C%20nn jpJP Z, nn
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#JP%20Z%2C%20nn ld�LoaD. The basic data load/transfer instruction. Transfers data from the location specified by the second argument, to the location specified by the first.Z ld
LD (BC), A Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28BC%29%2C%20A ld
LD (DE), A Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28DE%29%2C%20A ld
LD (HL), n
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28HL%29%2C%20n ld
LD (HL), r Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28HL%29%2C%20r ldLD (IX+o), n Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28IX%2Bo%29%2C%20n ldLD (IX+o), r Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28IX%2Bo%29%2C%20r ldLD (IY+o), n Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28IY%2Bo%29%2C%20n ldLD (IY+o), r Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28IY%2Bo%29%2C%20r ld
LD (nn), A
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20A ldLD (nn), BC Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20BC ldLD (nn), DE Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20DE ldLD (nn), HL Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20HL ldLD (nn), IX Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20IX ldLD (nn), IY Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20IY ldLD (nn), SP Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20%28nn%29%2C%20SP ld
LD A, (BC) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20%28BC%29 ld
LD A, (DE) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20%28DE%29 ld
LD A, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20%28HL%29 ldLD A, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20%28IX%2Bo%29 ldLD A, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20%28IY%2Bo%29 ld
LD A, (nn)
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20%28nn%29 ldLD A, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20n ldLD A, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20r ld LD A, IXp
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20IXp ld LD A, IYq
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20IYq ldLD A, I :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20I ldLD A, R :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20A%2C%20R ld
LD B, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20%28HL%29 ldLD B, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20%28IX%2Bo%29 ldLD B, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20%28IY%2Bo%29 ldLD B, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20n ldLD B, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20r ld LD B, IXp
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20IXp ld LD B, IYq
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20B%2C%20IYq ldLD BC, (nn) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20BC%2C%20%28nn%29 ld LD BC, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20BC%2C%20nn ld
LD C, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20%28HL%29 ldLD C, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20%28IX%2Bo%29 ldLD C, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20%28IY%2Bo%29 ldLD C, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20n ldLD C, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20r ld LD C, IXp
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20IXp ld LD C, IYq
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20C%2C%20IYq ld
LD D, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20%28HL%29 ldLD D, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20%28IX%2Bo%29 ldLD D, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20%28IY%2Bo%29 ldLD D, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20n ldLD D, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20r ld LD D, IXp
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20IXp ld LD D, IYq
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20D%2C%20IYq ldLD DE, (nn) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20DE%2C%20%28nn%29 ld LD DE, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20DE%2C%20nn ld
LD E, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20%28HL%29 ldLD E, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20%28IX%2Bo%29 ldLD E, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20%28IY%2Bo%29 ldLD E, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20n ldLD E, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20r ld LD E, IXp
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20IXp ld LD E, IYq
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20E%2C%20IYq ld
LD H, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20H%2C%20%28HL%29 ldLD H, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20H%2C%20%28IX%2Bo%29 ldLD H, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20H%2C%20%28IY%2Bo%29 ldLD H, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20H%2C%20n ldLD H, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20H%2C%20r ldLD HL, (nn) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20HL%2C%20%28nn%29 ld LD HL, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20HL%2C%20nn ldLD I, A :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20I%2C%20A ldLD IX, (nn) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IX%2C%20%28nn%29 ld LD IX, nn <https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IX%2C%20nn ld LD IXh, n
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IXh%2C%20n ld LD IXh, p
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IXh%2C%20p ld LD IXl, n
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IXl%2C%20n ld LD IXl, p
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IXl%2C%20p ldLD IY, (nn) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IY%2C%20%28nn%29 ld LD IY, nn <https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IY%2C%20nn ld LD IYh, n
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IYh%2C%20n ld LD IYh, q
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IYh%2C%20q ld LD IYl, n
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IYl%2C%20n ld LD IYl, q
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20IYl%2C%20q ld
LD L, (HL) Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20L%2C%20%28HL%29 ldLD L, (IX+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20L%2C%20%28IX%2Bo%29 ldLD L, (IY+o) Ehttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20L%2C%20%28IY%2Bo%29 ldLD L, n :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20L%2C%20n ldLD L, r :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20L%2C%20r ldLD R, A :https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20R%2C%20A ldLD SP, (nn) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20SP%2C%20%28nn%29 ld LD SP, HL <https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20SP%2C%20HL ld LD SP, IX
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20SP%2C%20IX ld LD SP, IY
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20SP%2C%20IY ld LD SP, nn
<https://www.zilog.com/docs/z80/z80cpu_um.pdf#LD%20SP%2C%20nn muluwMPerform 16-bit multiplication. Introduced as a new instruction with the R800. muluwMULUW HL, BC $ $ ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#MULUW%20HL%2C%20BC muluwMULUW HL, SP $ $ ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#MULUW%20HL%2C%20SP srl{Shift Right Logical. Shifts the target bitwise right by one position. The LSB is copied to Carry. 0 is copied into the MSB. srlSRL (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRL%20%28HL%29 srl
SRL (IX+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRL%20%28IX%2Bo%29 srl
SRL (IY+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRL%20%28IY%2Bo%29 srlSRL r
4https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRL%20r inc�INCrement. ncrements the target by one. The argument can be any 8-bit register, any 16-bit register pair, or the address pointed to by HL or indexed via IX or IY. P/V is set if the target held $7F. N is reset. incINC (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20%28HL%29 inc
INC (IX+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20%28IX%2Bo%29 inc
INC (IY+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20%28IY%2Bo%29 incINC A 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20A incINC B 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20B incINC BC 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20BC incINC C 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20C incINC D 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20D incINC DE 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20DE incINC E 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20E incINC H 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20H incINC HL 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20HL incINC IX
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20IX incINC IY
5https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20IY incINC IXp
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20IXp incINC IYq
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20IYq incINC L 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20L incINC SP 5https://www.zilog.com/docs/z80/z80cpu_um.pdf#INC%20SP sraShift Right Arithmetic. Shifts the target bitwise right by one position. The MSB is copied to itself. Bit 0 is copied to Carry. sraSRA (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRA%20%28HL%29 sra
SRA (IX+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRA%20%28IX%2Bo%29 sra
SRA (IY+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRA%20%28IY%2Bo%29 sraSRA r
4https://www.zilog.com/docs/z80/z80cpu_um.pdf#SRA%20r cpdr�ComPare and Decrement Repeated. Automatically loops CPIR until either Z is set (A is found in the byte pointed to by HL) or P/V is reset (BC reached 0). Flag effects are the same as CPD except that one of the two terminating flag conditions will always be true. cpdrCPDR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#CPDR cpir�ComPare and Increment Repeated. Automatically loops CPI until either Z is set (A is found in the byte pointed to by HL) or P/V is reset (BC reached 0). Flag effects are the same as CPI except that one of the two terminating flag conditions will always be true. cpirCPIR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#CPIR rraPSame as RR except it only works on A, is faster, and does not alter S, Z or P/V. rraRRA 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#RRA and"Performs the bitwise AND operator. andAND (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20%28HL%29 and
AND (IX+o) ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20%28IX%2Bo%29 and
AND (IY+o) ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20%28IY%2Bo%29 andAND n 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20n andAND r 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20r andAND IXp
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20IXp andAND IYq
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#AND%20IYq bit2test Bit. Tests if a bit is set on a target value. bitBIT b, (HL) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#BIT%20b%2C%20%28HL%29 bit
BIT b, (IX+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#BIT%20b%2C%20%28IX%2Bo%29 bit
BIT b, (IY+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#BIT%20b%2C%20%28IY%2Bo%29 bitBIT b, r
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#BIT%20b%2C%20r addAdds values together. addADD A, (HL) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20%28HL%29 add
ADD A, (IX+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20%28IX%2Bo%29 add
ADD A, (IY+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20%28IY%2Bo%29 addADD A, n ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20n addADD A, r ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20r add
ADD A, IXp
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20IXp add
ADD A, IYq
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20A%2C%20IYq add
ADD HL, BC =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20HL%2C%20BC add
ADD HL, DE =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20HL%2C%20DE add
ADD HL, HL =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20HL%2C%20HL add
ADD HL, SP =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20HL%2C%20SP add
ADD IX, BC =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IX%2C%20BC add
ADD IX, DE =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IX%2C%20DE add
ADD IX, IX =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IX%2C%20IX add
ADD IX, SP =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IX%2C%20SP add
ADD IY, BC =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IY%2C%20BC add
ADD IY, DE =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IY%2C%20DE add
ADD IY, IY =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IY%2C%20IY add
ADD IY, SP =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADD%20IY%2C%20SP otir�Out and Increment Repeated. Behaves like INIR except that it outputs instead of inputs and B is decremented before the output instead of after. Condition check on B is performed after, so that if OTIR starts with B=0 it loops 256 times. otirOTIR 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#OTIR cpl4ComPLement. Inverts the contents of the accumulator. cplCPL 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#CPL di1Disable Interrupts. Disables maskable interrupts. diDI /https://www.zilog.com/docs/z80/z80cpu_um.pdf#DI set/SET bit. Sets the numbered bit on target value. setSET b, (HL) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#SET%20b%2C%20%28HL%29 set
SET b, (IX+o)
Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#SET%20b%2C%20%28IX%2Bo%29 set
SET b, (IY+o)
Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#SET%20b%2C%20%28IY%2Bo%29 setSET b, r
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SET%20b%2C%20r ldi�LoaD and Increment. Copies the byte pointed to by HL to the address pointed to by DE, then adds 1 to DE and HL and subtracts 1 from BC. P/V is set to (BC!=0), i.e. set when non zero. ldiLDI 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#LDI res(Resets the numbered bit on target value. resRES b, (HL) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#RES%20b%2C%20%28HL%29 res
RES b, (IX+o)
Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#RES%20b%2C%20%28IX%2Bo%29 res
RES b, (IY+o)
Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#RES%20b%2C%20%28IY%2Bo%29 resRES b, r
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#RES%20b%2C%20r rld�Rotate Left bcd Digit. Rotates the lower nibble of the byte pointed to by HL, the upper nibble of that byte, and the lower nibble of A, in that order. rldRLD 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#RLD push�Pushes the given argument on the stack. This can be any 16-bit register pair except SP. SP is reduced by 2 and then the argument is written to the new location SP points to. pushPUSH AF 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#PUSH%20AF pushPUSH BC 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#PUSH%20BC pushPUSH DE 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#PUSH%20DE pushPUSH HL 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#PUSH%20HL pushPUSH IX 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#PUSH%20IX pushPUSH IY 6https://www.zilog.com/docs/z80/z80cpu_um.pdf#PUSH%20IY ldd�LoaD and Decrement. Copies the byte pointed to by HL to the address pointed to by DE, then substracts 1 from DE, HL, and BC. P/V is set to (BC!=0), i.e. set when non zero. lddLDD 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#LDD scf$Set Carry Flag. Sets the carry flag. scfSCF 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#SCF cpd�ComPare and Decrement. Compares the byte pointed to by HL with the contents of A and sets Z if it matches or S if the comparison goes negative. Then subtracts 1 from HL and subtracts 1 from BC. cpdCPD 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#CPD nop�No OPeration. Does 'nothing' (just usual housekeeping like refreshing memory and advancing program counter to next instruction). nopNOP 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#NOP exxaEXchange all. Exchanges BC, DE, and HL with their shadow registers. AF and AF' are not exchanged. exxEXX 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#EXX jr�Jump Relative. Jumps to an alternate address by adding the parameter to the PC - in other words the parameter is an adjustment, not an absolute address. jrJR o
3https://www.zilog.com/docs/z80/z80cpu_um.pdf#JR%20o jrJR C, o
:https://www.zilog.com/docs/z80/z80cpu_um.pdf#JR%20C%2C%20o jrJR NC, o
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#JR%20NC%2C%20o jrJR NZ, o
;https://www.zilog.com/docs/z80/z80cpu_um.pdf#JR%20NZ%2C%20o jrJR Z, o
:https://www.zilog.com/docs/z80/z80cpu_um.pdf#JR%20Z%2C%20o slaxShift Left Arithmetic. Shifts the target bitwise left by one position. The MSB is copied to Carry. 0 is copied to bit 0. slaSLA (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SLA%20%28HL%29 sla
SLA (IX+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SLA%20%28IX%2Bo%29 sla
SLA (IY+o)
?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SLA%20%28IY%2Bo%29 slaSLA r
4https://www.zilog.com/docs/z80/z80cpu_um.pdf#SLA%20r out=Outputs a byte value from the 16-bit port number given in BC. out
OUT (C), A
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20A out
OUT (C), B
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20B out
OUT (C), C
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20C out
OUT (C), D
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20D out
OUT (C), E
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20E out
OUT (C), H
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20H out
OUT (C), L
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28C%29%2C%20L out
OUT (n), A
Ahttps://www.zilog.com/docs/z80/z80cpu_um.pdf#OUT%20%28n%29%2C%20A cpi�CoPare and Increment. Compares the byte pointed to by HL with the contents of A and sets Z if it matches or S if the comparison goes negative. Then adds 1 to HL and subtracts 1 from BC. P/V is set to (BC!=0), i.e. set when non zero. cpiCPI 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#CPI adcMADd with Carry. Adds values together, adding an additional 1 if Carry is set. adcADC A, (HL) Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20%28HL%29 adc
ADC A, (IX+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20%28IX%2Bo%29 adc
ADC A, (IY+o) Fhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20%28IY%2Bo%29 adcADC A, n ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20n adcADC A, r ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20r adc
ADC A, IXp
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20IXp adc
ADC A, IYq
=https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20A%2C%20IYq adc
ADC HL, BC =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20HL%2C%20BC adc
ADC HL, DE =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20HL%2C%20DE adc
ADC HL, HL =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20HL%2C%20HL adc
ADC HL, SP =https://www.zilog.com/docs/z80/z80cpu_um.pdf#ADC%20HL%2C%20SP subSubtracts a value from A. subSUB (HL) ;https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20%28HL%29 sub
SUB (IX+o) ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20%28IX%2Bo%29 sub
SUB (IY+o) ?https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20%28IY%2Bo%29 subSUB n 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20n subSUB r 4https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20r subSUB IXp
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20IXp subSUB IYq
6https://www.zilog.com/docs/z80/z80cpu_um.pdf#SUB%20IYq reti�RETurn from Interrupt. Returns from an interrupt service routine (same as RET instruction, but also does signal to I/O device that the interrupt routine is completed). retiRETI 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#RETI outd�Out and Decrement. Behaves like IND, except that it outputs instead of inputs and B is decremented before the output instead of after. Condition check on B is performed after, so that if OTIR starts with B=0 it loops 256 times. outdOUTD 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#OUTD ccf�Complement Carry Flag. Inverts the carry flag. (Does not, as might be assumed, clear it!) Also sets H to the previous value of the carry flag. ccfCCF 0https://www.zilog.com/docs/z80/z80cpu_um.pdf#CCF rlcaQSame as RLC except it only works on A, is faster, and does not alter S, Z or P/V. rlcaRLCA 1https://www.zilog.com/docs/z80/z80cpu_um.pdf#RLCA ex0EXchange. Exchanges the contents of two sources. exEX (SP), HL Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#EX%20%28SP%29%2C%20HL exEX (SP), IX Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#EX%20%28SP%29%2C%20IX exEX (SP), IY Bhttps://www.zilog.com/docs/z80/z80cpu_um.pdf#EX%20%28SP%29%2C%20IY ex
EX AF, AF'