:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : : Cross Reference listing of Z-80 Mnemonics : :Courtesy of Tim Eliseo : %PCE, 4778 Dewey Dr, Fair Oaks, Ca 95628 :June 1980 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: This document is a cross-reference listing of the standard Zilog Z-80 mnemonics to the bastardized TDL Z-80 mnemonics. The TDL mnemonics are upward compatible to the standard Intel 8080 mnemonics, making it easy to upgrade existing 8080 source programs to the Z-80 CPU. The only problem is that they are just as illogical as the original 8080 mnemonics, and there is no real standard for them. These are the mnemonics which are used with PASCAL/Z and the assembler that comes with the package. These tables will make it easy for the Z-80 assembly language programmer to cross reference the non-standard mnemonics. If an asterisk appears in the left-hand column of a line, it means that all of the instructions specified in that line, except those that refer to the Z-80 index registers, are compatible with the 8080. There are a few instructions that require further clarification. The TDL assembler mnemonics JV, JNV, CV, CNV, RV, and RNV are synonymous to the 8080 mnemonics JPE, JPO, CPE, CPO, RPE, and RPO respectively. These instructions refer to the parity/overflow flag in the Z-80 when it is used as an overflow flag and are not included in 8080 assemblers, even though the instructions will execute on the 8080 but will always refer to the flag as a parity flag (this flag is always a parity flag in the 8080). Another instruction which requires clarification is the RST instruction. In the TDL assembler the operand is a number which is actually the restart address divided by 8, while in the Zilog assembler the operand is the actual restart address. Following is a list of the abbreviations that are used to reference a group of similar operands. Notice that although the same symbol may be used as an operand for both a Zilog mnemonic and a TDL mnemonic that they may refer to different things. When two lists are given in the following table, one for the Zilog assembler and one for the Z assembler, you may assume that the items in each list parallel each other. Symbol Standard (Zilog) Z-80 Bastardized (TDL) Z-80 r Register A,B,C,D,E,H, or L Register A,B,C,D,E,H, or L n One byte value One byte value ii Index register IX, IY Index register X or IX, Y or IY jj rr or ii rr or ii d 8-bit index displacement 8-bit index displacement zz Register pair BC or DE Register pair B or D nn Two byte (address) value Two byte (address) value rr Register pair BC,DE,HL, or SP Register pair B,D,H, or SP qq Register pair BC,DE,HL, or AF Register pair B,D,H, or PSW s r, (HL), or (ii+d) r, M, or d(ii) tt Register BC,DE,SP, or IX Register B,D,SP, or X uu Register BC,DE,SP, or IY Register B,D,SP, or Y b Bit number 0-7 Bit number 0-7 .PA Z-80 instructions arranged by group 8080? Standard (Zilog) Z-80 Bastardized (TDL) Z-80 8 Bit load group * LD r,s MOV r,s * LD r,n MVI r,n * LD s,r MOV s,r * LD A,(nn) LDA nn * LD (nn),A STA nn * LD A,(zz) LDAX zz * LD (zz),A STAX zz LD A,I LDAI LD A,R LDAR LD I,A STAI LD R,A STAR 16 Bit load group * LD jj,nn LXI jj,nn LD BC,(nn) LBCD nn LD DE,(nn) LDED nn * LD HL,(nn) LHLD nn LD IX,(nn) LIXD nn LD IY,(nn) LIYD nn LD SP,(nn) LSPD nn LD (nn),BC SBCD nn LD (nn),DE SDED nn * LD (nn),HL SHLD nn LD (nn),IX SIXD nn LD (nn),IY SIYD nn LD (nn),SP SSPD nn * LD SP,HL SPHL LD SP,IX SPIX LD SP,IY SPIY * PUSH qq PUSH qq PUSH ii PUSH ii * POP qq POP qq POP ii POP ii Exchange, block transfer, and search group * EX DE,HL XCHG EX AF,AF' EXAF EXX EXX * EX (SP),HL XTHL EX (SP),IX XTIX EX (SP),IY XTIY LDI LDI LDIR LDIR LDD LDD LDDR LDDR CPI CCI CPIR CCIR CPD CCD CPDR CCDR 8 bit arithmetic and logical group * ADD A,s ADD s * ADD A,n ADI n * ADC A,s ADC s * ADC A,n ACI n * SUB A,s SUB s * SUB A,n SUI n * SBC A,s SBB s * SBC A,n SBI n * AND A,s ANA s * AND A,n ANI n * OR A,s ORA s * OR A,n ORI n * XOR A,s XRA s * XOR A,n XRI n * CP A,s CMP s * CP A,n CPI n * INC s INR s * DEC s DCR s General purpose arithmetic and CPU control group * DAA DAA * CPL CMA NEG NEG * CCF CMC * SCF STC * NOP NOP * HALT HLT * DI DI * EI EI IM 0 IM0 IM 1 IM1 IM 2 IM2 16 bit arithmetic group * ADD HL,rr DAD rr ADC HL,rr DADC rr SBC HL,rr DSBC rr ADD IX,tt DADX tt ADD IY,uu DADY uu * INC jj INX jj * DEC jj DCX jj Rotate and shift group * RLCA RLC * RLA RAL * RRCA RRC * RRA RAR RLC s RLCR s RL s RALR s RRC s RRCR s RR s RARR s SLA s SLAR s SRA s SRAR s SRL s SRLR s RLD RLD RRD RRD Bit set, reset, and test group BIT b,s BIT b,s SET b,s BSET b,s RES b,s RES b,s Jump group * JP nn JMP nn * JP Z,nn JZ nn * JP NZ,nn JNZ nn * JP C,nn JC nn * JP NC,nn JNC nn * JP PO,nn JPO nn * JP PE,nn JPE nn * JP P,nn JP nn * JP M,nn JM nn * JP PE,nn JV nn * JP PO,nn JNV nn JR nn JMPR nn JR Z,nn JRZ nn JR NZ,nn JRNZ nn JR C,nn JRC nn JR NC,nn JRNC nn DJNZ nn DJNZ nn * JP (HL) PCHL JP (IX) PCIX JP (IY) PCIY Call and return group * CALL nn CALL nn * CALL Z,nn CZ nn * CALL NZ,nn CNZ nn * CALL C,nn CC nn * CALL NC,nn CNC nn * CALL PO,nn CPO nn * CALL PE,nn CPE nn * CALL P,nn CP nn * CALL M,nn CM nn * CALL PE,nn CV nn * CALL PO,nn CNV nn * RET RET * RET Z RZ * RET NZ RNZ * RET C RC * RET NC RNC * RET PO RPO * RET PE RPE * RET P RP * RET M RM * RET PE RV * RET PO RNV RETI RETI RETN RETN * RST n RST n/8 Input and output group * IN A,(n) IN n IN r,(C) INP r INI INI INIR INIR IND IND INDR INDR * OUT (n),A OUT n OUT (C),r OUTP r OUTI OUTI OUTD OUTD OTDR OUTDR Z-80 instructions sorted by standard Zilog mnemonics 8080? Standard (Zilog) Z-80 Bastardized (TDL) Z-80 * ADC A,n ACI n * ADC A,s ADC s ADC HL,rr DADC rr * ADD A,n ADI n * ADD A,s ADD s * ADD HL,rr DAD rr ADD IX,tt DADX tt ADD IY,uu DADY uu * AND A,n ANI n * AND A,s ANA s BIT b,s BIT b,s * CALL C,nn CC nn * CALL M,nn CM nn * CALL NC,nn CNC nn * CALL nn CALL nn * CALL NZ,nn CNZ nn * CALL P,nn CP nn * CALL PE,nn CPE nn * CALL PE,nn CV nn * CALL PO,nn CNV nn * CALL PO,nn CPO nn * CALL Z,nn CZ nn * CCF CMC * CP A,n CPI n * CP A,s CMP s CPD CCD CPDR CCDR CPI CCI CPIR CCIR * CPL CMA * DAA DAA * DEC jj DCX jj * DEC s DCR s * DI DI DJNZ nn DJNZ nn * EI EI * EX (SP),HL XTHL EX (SP),IX XTIX EX (SP),IY XTIY EX AF,AF' EXAF * EX DE,HL XCHG EXX EXX * HALT HLT IM 0 IM0 IM 1 IM1 IM 2 IM2 * IN A,(n) IN n IN r,(C) INP r * INC jj INX jj * INC s INR s IND IND INDR INDR INI INI INIR INIR * JP (HL) PCHL JP (IX) PCIX JP (IY) PCIY * JP C,nn JC nn * JP M,nn JM nn * JP NC,nn JNC nn * JP nn JMP nn * JP NZ,nn JNZ nn * JP P,nn JP nn * JP PE,nn JPE nn * JP PE,nn JV nn * JP PO,nn JNV nn * JP PO,nn JPO nn * JP Z,nn JZ nn JR C,nn JRC nn JR NC,nn JRNC nn JR nn JMPR nn JR NZ,nn JRNZ nn JR Z,nn JRZ nn * LD (nn),A STA nn LD (nn),BC SBCD nn LD (nn),DE SDED nn * LD (nn),HL SHLD nn LD (nn),IX SIXD nn LD (nn),IY SIYD nn LD (nn),SP SSPD nn * LD (zz),A STAX zz * LD A,(nn) LDA nn * LD A,(zz) LDAX zz LD A,I LDAI LD A,R LDAR LD BC,(nn) LBCD nn LD DE,(nn) LDED nn * LD HL,(nn) LHLD nn LD I,A STAI LD IX,(nn) LIXD nn LD IY,(nn) LIYD nn * LD jj,nn LXI jj,nn LD R,A STAR * LD r,n MVI r,n * LD r,s MOV r,s * LD s,r MOV s,r LD SP,(nn) LSPD nn * LD SP,HL SPHL LD SP,IX SPIX LD SP,IY SPIY LDD LDD LDDR LDDR LDI LDI LDIR LDIR NEG NEG * NOP NOP * OR A,n ORI n * OR A,s ORA s OTDR OUTDR OTIR OUTIR OUT (C),r OUTP r * OUT (n),A OUT n OUTD OUTD OUTI OUTI POP ii POP ii * POP qq POP qq PUSH ii PUSH ii * PUSH qq PUSH qq RES b,s RES b,s * RET RET * RET C RC * RET M RM * RET NC RNC * RET NZ RNZ * RET P RP * RET PE RPE * RET PE RV * RET PO RNV * RET PO RPO * RET Z RZ RETI RETI RETN RETN RL s RALR s * RLA RAL RLC s RLCR s * RLCA RLC RLD RLD RR s RARR s * RRA RAR RRC s RRCR s * RRCA RRC RRD RRD * RST n RST n/8 * SBC A,n SBI n * SBC A,s SBB s SBC HL,rr DSBC rr * SCF STC SET b,s BSET b,s SLA s SLAR s SRA s SRAR s SRL s SRLR s * SUB A,n SUI n * SUB A,s SUB s * XOR A,n XRI n * XOR A,s XRA s Z-80 instructions sorted by bastardized TDL mnemonics 8080? Standard (Zilog) Z-80 Bastardized (TDL) Z-80 * ADC A,n ACI n * ADC A,s ADC s * ADD A,s ADD s * ADD A,n ADI n * AND A,s ANA s * AND A,n ANI n BIT b,s BIT b,s SET b,s BSET b,s * CALL nn CALL nn * CALL C,nn CC nn CPD CCD CPDR CCDR CPI CCI CPIR CCIR * CALL M,nn CM nn * CPL CMA * CCF CMC * CP A,s CMP s * CALL NC,nn CNC nn * CALL PO,nn CNV nn * CALL NZ,nn CNZ nn * CALL P,nn CP nn * CALL PE,nn CPE nn * CP A,n CPI n * CALL PO,nn CPO nn * CALL PE,nn CV nn * CALL Z,nn CZ nn * DAA DAA * ADD HL,rr DAD rr ADC HL,rr DADC rr ADD IX,tt DADX tt ADD IY,uu DADY uu * DEC s DCR s * DEC jj DCX jj * DI DI DJNZ nn DJNZ nn SBC HL,rr DSBC rr * EI EI EX AF,AF' EXAF EXX EXX * HALT HLT IM 0 IM0 IM 1 IM1 IM 2 IM2 * IN A,(n) IN n IND IND INDR INDR INI INI INIR INIR IN r,(C) INP r * INC s INR s * INC jj INX jj * JP C,nn JC nn * JP M,nn JM nn * JP nn JMP nn JR nn JMPR nn * JP NC,nn JNC nn * JP PO,nn JNV nn * JP NZ,nn JNZ nn * JP P,nn JP nn * JP PE,nn JPE nn * JP PO,nn JPO nn JR C,nn JRC nn JR NC,nn JRNC nn JR NZ,nn JRNZ nn JR Z,nn JRZ nn * JP PE,nn JV nn * JP Z,nn JZ nn LD BC,(nn) LBCD nn * LD A,(nn) LDA nn LD A,I LDAI LD A,R LDAR * LD A,(zz) LDAX zz LDD LDD LDDR LDDR LD DE,(nn) LDED nn LDI LDI LDIR LDIR * LD HL,(nn) LHLD nn LD IX,(nn) LIXD nn LD IY,(nn) LIYD nn LD SP,(nn) LSPD nn * LD jj,nn LXI jj,nn * LD r,s MOV r,s * LD s,r MOV s,r * LD r,n MVI r,n NEG NEG * NOP NOP * OR A,s ORA s * OR A,n ORI n * OUT (n),A OUT n OUTD OUTD OTDR OUTDR OUTI OUTI OTIR OUTIR OUT (C),r OUTP r * JP (HL) PCHL JP (IX) PCIX JP (IY) PCIY POP ii POP ii * POP qq POP qq PUSH ii PUSH ii * PUSH qq PUSH qq * RLA RAL RL s RALR s * RRA RAR RR s RARR s * RET C RC RES b,s RES b,s * RET RET RETI RETI RETN RETN * RLCA RLC RLC s RLCR s RLD RLD * RET M RM * RET NC RNC * RET PO RNV * RET NZ RNZ * RET P RP * RET PE RPE * RET PO RPO * RRCA RRC RRC s RRCR s RRD RRD * RST n RST n/8 * RET PE RV * RET Z RZ * SBC A,s SBB s LD (nn),BC SBCD nn * SBC A,n SBI n LD (nn),DE SDED nn * LD (nn),HL SHLD nn LD (nn),IX SIXD nn LD (nn),IY SIYD nn SLA s SLAR s * LD SP,HL SPHL LD SP,IX SPIX LD SP,IY SPIY SRA s SRAR s SRL s SRLR s LD (nn),SP SSPD nn * LD (nn),A STA nn LD I,A STAI LD R,A STAR * LD (zz),A STAX zz * SCF STC * SUB A,s SUB s * SUB A,n SUI n * EX DE,HL XCHG * XOR A,s XRA s * XOR A,n XRI n * EX (SP),HL XTHL EX (SP),IX XTIX EX (SP),IY XTIY .