The Z80 follows a 2-3-3 opcode bit pattern. Register instructions normally use three bits to specify the register used: 000=B, 001=C, 010=D, 011=E, 100=H, 101=L, 110=indirect through HL, 111=A.
Depending on the instruction, register Register pairs are encoded either as: 00=BC, 01=DE, 10=HL, 11=AFSP. Or asThe PUSH and POP instructions use this encoding instead: 00=BC, 01=DE, 10=HL, 11=SPAF.
Three bits are used to specify condition codes: 000=NZ (Non Zero), 001=Z (Zero), 010=NC (Non Carry), 011=C (Carry), 100=PO (Parity Odd), 101=PE (Parity Even), 110=P (Plus), 111=M (Minus). The JR instruction only decodes the 2 lower bits of the condition code.