| Code: ; ############################################################################# ; ## Disassembler 8085 ## ; ############################################################################# ; ; Author: Vitaliy Poedinok aka Vital72 ; License: MIT ; www: http://www.86rk.ru/ ; e-mail: vital72@86rk.ru ; Version: 1.0 ; Date: 07.02.24
OUT_HEX EQU 0F815h OUT_CHAR EQU 0F809h OUT_STR EQU 0F818h OUT_ADDR EQU 0FB78h CMP_DE_HL EQU 0F990h MONITOR_PROMPT EQU 0F86Ch DISASSM_BUFFER EQU 7633h
MNEMO_MOV EQU 0 MNEMO_MVI EQU 1 MNEMO_STAX EQU 2 MNEMO_LDAX EQU 3 MNEMO_STA EQU 4 MNEMO_LDA EQU 5 MNEMO_LXI EQU 6 MNEMO_SHLD EQU 7 MNEMO_LHLD EQU 8 MNEMO_PUSH EQU 9 MNEMO_POP EQU 10 MNEMO_SPHL EQU 11 MNEMO_XCHG EQU 12 MNEMO_XTHL EQU 13 MNEMO_IN EQU 14 MNEMO_OUT EQU 15 MNEMO_CMC EQU 16 MNEMO_STC EQU 17 MNEMO_CMA EQU 18 MNEMO_DAA EQU 19 MNEMO_INR EQU 20 MNEMO_DCR EQU 21 MNEMO_INX EQU 22 MNEMO_DCX EQU 23 MNEMO_ADD EQU 24 MNEMO_ADC EQU 25 MNEMO_SUB EQU 26 MNEMO_SBB EQU 27 MNEMO_ANA EQU 28 MNEMO_ORA EQU 29 MNEMO_XRA EQU 30 MNEMO_CMP EQU 31 MNEMO_ADI EQU 32 MNEMO_ACI EQU 33 MNEMO_SUI EQU 34 MNEMO_SBI EQU 35 MNEMO_ANI EQU 36 MNEMO_ORI EQU 37 MNEMO_XRI EQU 38 MNEMO_CPI EQU 39 MNEMO_DAD EQU 40 MNEMO_RLC EQU 41 MNEMO_RAL EQU 42 MNEMO_RRC EQU 43 MNEMO_RAR EQU 44 MNEMO_PCHL EQU 45 MNEMO_JMP EQU 46 MNEMO_CALL EQU 47 MNEMO_RST EQU 48 MNEMO_RET EQU 49 MNEMO_JNZ EQU 50 MNEMO_JZ EQU 51 MNEMO_JNC EQU 52 MNEMO_JC EQU 53 MNEMO_JPO EQU 54 MNEMO_JPE EQU 55 MNEMO_JP EQU 56 MNEMO_JM EQU 57 MNEMO_CNZ EQU 58 MNEMO_CZ EQU 59 MNEMO_CNC EQU 60 MNEMO_CC EQU 61 MNEMO_CPO EQU 62 MNEMO_CPE EQU 63 MNEMO_CP EQU 64 MNEMO_CM EQU 65 MNEMO_RNZ EQU 66 MNEMO_RZ EQU 67 MNEMO_RNC EQU 68 MNEMO_RC EQU 69 MNEMO_RPO EQU 70 MNEMO_RPE EQU 71 MNEMO_RP EQU 72 MNEMO_RM EQU 73 MNEMO_EI EQU 74 MNEMO_DI EQU 75 MNEMO_HLT EQU 76 MNEMO_NOP EQU 77 MNEMO_DSUB EQU 78 MNEMO_ARHL EQU 79 MNEMO_RLDE EQU 80 MNEMO_RIM EQU 81 MNEMO_SIM EQU 82 MNEMO_LDHI EQU 83 MNEMO_LDSI EQU 84 MNEMO_RSTV EQU 85 MNEMO_SHLX EQU 86 MNEMO_LHLX EQU 87 MNEMO_JNK EQU 88 MNEMO_JK EQU 89
MNEMO_OP_NONE EQU 0 MNEMO_OP_R8 EQU 1 MNEMO_OP_R16 EQU 2 MNEMO_OP_IM8 EQU 3 MNEMO_OP_IM16 EQU 4 MNEMO_OP_R8_IM8 EQU 5 MNEMO_OP_R16_IM16 EQU 6 MNEMO_OP_N EQU 7 MNEMO_OP_B_R8 EQU 8 MNEMO_OP_C_R8 EQU 9 MNEMO_OP_D_R8 EQU 10 MNEMO_OP_E_R8 EQU 11 MNEMO_OP_H_R8 EQU 12 MNEMO_OP_L_R8 EQU 13 MNEMO_OP_M_R8 EQU 14 MNEMO_OP_A_R8 EQU 15
MNEMO_REG8_B EQU 0 MNEMO_REG8_C EQU 1 MNEMO_REG8_D EQU 2 MNEMO_REG8_E EQU 3 MNEMO_REG8_H EQU 4 MNEMO_REG8_L EQU 5 MNEMO_REG8_M EQU 6 MNEMO_REG8_A EQU 7
MNEMO_REG16_B EQU 0 MNEMO_REG16_D EQU 1 MNEMO_REG16_H EQU 2 MNEMO_REG16_SP EQU 3 MNEMO_REG16_PSW EQU 4
.macro instr db @1 db (@2 << 4) | @3 .endm
; =============================================================================
disassm: push d push h ; addr of first byte lxi d, disassm_out push d mov e, m mvi d, 0 inx h push h lxi h, disassm_table_8085 dad d dad d mov b, m ; mnemo inx h mov c, m ; operands mov a, c ani 0F0h rrc rrc rrc mov e, a lxi h, disassm_op dad d mov e, m inx h mov d, m xchg xthl mov a, c ani 07h lxi d, DISASSM_BUFFER ret
disassm_op: dw disassm_op_none, disassm_op_r8, disassm_op_r16, disassm_op_im8 dw disassm_op_im16, disassm_op_r8_im8, disassm_op_r16_im16, disassm_op_n dw disassm_op_b_r8, disassm_op_c_r8, disassm_op_d_r8, disassm_op_e_r8 dw disassm_op_h_r8, disassm_op_l_r8, disassm_op_m_r8, disassm_op_a_r8
disassm_out: pop d ; addr of first byte push h ; addr of next byte after last push b xchg mvi b, 4 call OUT_ADDR mov a, m inx h dcr b call OUT_HEX call CMP_DE_HL jnz $-9 mvi c, ' ' call OUT_CHAR call OUT_CHAR dcr b jnz $-7 pop b lxi h, disassm_mnemo_8085 mov e, b mvi d, 0 dad d dad d dad d dad d mvi b, 4 mov c, m call OUT_CHAR inx h dcr b jnz $-6 mvi c, ' ' call OUT_CHAR call OUT_CHAR lxi h, DISASSM_BUFFER call OUT_STR pop h pop d call CMP_DE_HL jnc MONITOR_PROMPT jmp disassm
disassm_hex2str: push psw rrc rrc rrc rrc call $+4 pop psw ani 0Fh cpi 10 sbi '0' - 1 daa stax d inx d ret
disassm_get_reg8: push h adi low (disassm_reg8_8085) mov l, a mvi a, 0 aci high (disassm_reg8_8085) mov h, a mov a, m pop h ret
disassm_op_r8: call disassm_get_reg8 jmp disassm_lbl1
disassm_op_r16: push h push d lxi h, disassm_reg16_8085 mov e, a mvi d, 0 dad d dad d dad d dad d pop d mov a, m inx h stax d inx d ana a jnz $-5 pop h ret
disassm_op_im8: mov a, m inx h call disassm_hex2str jmp disassm_op_none
disassm_op_im16: inx h mov a, m call disassm_hex2str dcx h mov a, m inx h inx h call disassm_hex2str jmp disassm_op_none
disassm_op_r8_im8: call disassm_get_reg8 stax d inx d mvi a, ',' stax d inx d mvi a, ' ' stax d inx d jmp disassm_op_im8
disassm_op_r16_im16: call disassm_op_r16 dcx d mvi a, ',' stax d inx d mvi a, ' ' stax d inx d jmp disassm_op_im16
disassm_op_n: adi '0' jmp disassm_lbl1
disassm_op_b_r8: mvi a, 'B' jmp disassm_op_a_r8 + 2
disassm_op_c_r8: mvi a, 'C' jmp disassm_op_a_r8 + 2
disassm_op_d_r8: mvi a, 'D' jmp disassm_op_a_r8 + 2
disassm_op_e_r8: mvi a, 'E' jmp disassm_op_a_r8 + 2
disassm_op_h_r8: mvi a, 'H' jmp disassm_op_a_r8 + 2
disassm_op_l_r8: mvi a, 'L' jmp disassm_op_a_r8 + 2
disassm_op_m_r8: mvi a, 'M' jmp disassm_op_a_r8 + 2
disassm_op_a_r8: mvi a, 'A' stax d inx d mvi a, ',' stax d inx d mvi a, ' ' stax d inx d mov a, c ani 07h call disassm_get_reg8 disassm_lbl1: stax d inx d disassm_op_none: xra a stax d ret
; =============================================================================
disassm_table_8085: instr MNEMO_NOP, MNEMO_OP_NONE, 0 instr MNEMO_LXI, MNEMO_OP_R16_IM16, MNEMO_REG16_B instr MNEMO_STAX, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_INX, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_B instr MNEMO_RLC, MNEMO_OP_NONE, 0 instr MNEMO_DSUB, MNEMO_OP_NONE, 0 instr MNEMO_DAD, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_LDAX, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_DCX, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_C instr MNEMO_RRC, MNEMO_OP_NONE, 0 instr MNEMO_ARHL, MNEMO_OP_NONE, 0 instr MNEMO_LXI, MNEMO_OP_R16_IM16, MNEMO_REG16_D instr MNEMO_STAX, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_INX, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_D instr MNEMO_RAL, MNEMO_OP_NONE, 0 instr MNEMO_RLDE, MNEMO_OP_NONE, 0 instr MNEMO_DAD, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_LDAX, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_DCX, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_E instr MNEMO_RAR, MNEMO_OP_NONE, 0 instr MNEMO_RIM, MNEMO_OP_NONE, 0 instr MNEMO_LXI, MNEMO_OP_R16_IM16, MNEMO_REG16_H instr MNEMO_SHLD, MNEMO_OP_IM16, 0 instr MNEMO_INX, MNEMO_OP_R16, MNEMO_REG16_H instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_H instr MNEMO_DAA, MNEMO_OP_NONE, 0 instr MNEMO_LDHI, MNEMO_OP_IM8, 0 instr MNEMO_DAD, MNEMO_OP_R16, MNEMO_REG16_H instr MNEMO_LHLD, MNEMO_OP_IM16, 0 instr MNEMO_DCX, MNEMO_OP_R16, MNEMO_REG16_H instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_L instr MNEMO_CMA, MNEMO_OP_NONE, 0 instr MNEMO_SIM, MNEMO_OP_NONE, 0 instr MNEMO_LXI, MNEMO_OP_R16_IM16, MNEMO_REG16_SP instr MNEMO_STA, MNEMO_OP_IM16, 0 instr MNEMO_INX, MNEMO_OP_R16, MNEMO_REG16_SP instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_M instr MNEMO_STC, MNEMO_OP_NONE, 0 instr MNEMO_LDSI, MNEMO_OP_IM8, 0 instr MNEMO_DAD, MNEMO_OP_R16, MNEMO_REG16_SP instr MNEMO_LDA, MNEMO_OP_IM16, 0 instr MNEMO_DCX, MNEMO_OP_R16, MNEMO_REG16_SP instr MNEMO_INR, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_DCR, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_MVI, MNEMO_OP_R8_IM8, MNEMO_REG8_A instr MNEMO_CMC, MNEMO_OP_NONE, 0 instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_B_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_C_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_D_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_E_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_H_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_L_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_L instr MNEMO_HLT, MNEMO_OP_NONE, 0 instr MNEMO_MOV, MNEMO_OP_M_R8, MNEMO_REG8_A instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_B instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_C instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_D instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_E instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_H instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_L instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_M instr MNEMO_MOV, MNEMO_OP_A_R8, MNEMO_REG8_A instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_ADD, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_ADC, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_SUB, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_SBB, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_ANA, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_XRA, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_ORA, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_B instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_C instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_D instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_E instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_H instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_L instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_M instr MNEMO_CMP, MNEMO_OP_R8, MNEMO_REG8_A instr MNEMO_RNZ, MNEMO_OP_NONE, 0 instr MNEMO_POP, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_JNZ, MNEMO_OP_IM16, 0 instr MNEMO_JMP, MNEMO_OP_IM16, 0 instr MNEMO_CNZ, MNEMO_OP_IM16, 0 instr MNEMO_PUSH, MNEMO_OP_R16, MNEMO_REG16_B instr MNEMO_ADI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 0 instr MNEMO_RZ, MNEMO_OP_NONE, 0 instr MNEMO_RET, MNEMO_OP_NONE, 0 instr MNEMO_JZ, MNEMO_OP_IM16, 0 instr MNEMO_RSTV, MNEMO_OP_NONE, 0 instr MNEMO_CZ, MNEMO_OP_IM16, 0 instr MNEMO_CALL, MNEMO_OP_IM16, 0 instr MNEMO_ACI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 1 instr MNEMO_RNC, MNEMO_OP_NONE, 0 instr MNEMO_POP, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_JNC, MNEMO_OP_IM16, 0 instr MNEMO_OUT, MNEMO_OP_IM8, 0 instr MNEMO_CNC, MNEMO_OP_IM16, 0 instr MNEMO_PUSH, MNEMO_OP_R16, MNEMO_REG16_D instr MNEMO_SUI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 2 instr MNEMO_RC, MNEMO_OP_NONE, 0 instr MNEMO_SHLX, MNEMO_OP_NONE, 0 instr MNEMO_JC, MNEMO_OP_IM16, 0 instr MNEMO_IN, MNEMO_OP_IM8, 0 instr MNEMO_CC, MNEMO_OP_IM16, 0 instr MNEMO_JNK, MNEMO_OP_IM16, 0 instr MNEMO_SBI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 3 instr MNEMO_RPO, MNEMO_OP_NONE, 0 instr MNEMO_POP, MNEMO_OP_R16, MNEMO_REG16_H instr MNEMO_JPO, MNEMO_OP_IM16, 0 instr MNEMO_XTHL, MNEMO_OP_NONE, 0 instr MNEMO_CPO, MNEMO_OP_IM16, 0 instr MNEMO_PUSH, MNEMO_OP_R16, MNEMO_REG16_H instr MNEMO_ANI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 4 instr MNEMO_RPE, MNEMO_OP_NONE, 0 instr MNEMO_PCHL, MNEMO_OP_NONE, 0 instr MNEMO_JPE, MNEMO_OP_IM16, 0 instr MNEMO_XCHG, MNEMO_OP_NONE, 0 instr MNEMO_CPE, MNEMO_OP_IM16, 0 instr MNEMO_LHLX, MNEMO_OP_NONE, 0 instr MNEMO_XRI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 5 instr MNEMO_RP, MNEMO_OP_NONE, 0 instr MNEMO_POP, MNEMO_OP_R16, MNEMO_REG16_PSW instr MNEMO_JP, MNEMO_OP_IM16, 0 instr MNEMO_DI, MNEMO_OP_NONE, 0 instr MNEMO_CP, MNEMO_OP_IM16, 0 instr MNEMO_PUSH, MNEMO_OP_R16, MNEMO_REG16_PSW instr MNEMO_ORI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 6 instr MNEMO_RM, MNEMO_OP_NONE, 0 instr MNEMO_SPHL, MNEMO_OP_NONE, 0 instr MNEMO_JM, MNEMO_OP_IM16, 0 instr MNEMO_EI, MNEMO_OP_NONE, 0 instr MNEMO_CM, MNEMO_OP_IM16, 0 instr MNEMO_JK, MNEMO_OP_IM16, 0 instr MNEMO_CPI, MNEMO_OP_IM8, 0 instr MNEMO_RST, MNEMO_OP_N, 7
disassm_mnemo_8085: db "MOV ", "MVI ", "STAX", "LDAX", "STA ", "LDA " db "LXI ", "SHLD", "LHLD", "PUSH", "POP ", "SPHL", "XCHG", "XTHL" db "IN ", "OUT " db "CMC ", "STC ", "CMA ", "DAA ", "INR ", "DCR ", "INX ", "DCX " db "ADD ", "ADC ", "SUB ", "SBB ", "ANA ", "ORA ", "XRA ", "CMP " db "ADI ", "ACI ", "SUI ", "SBI ", "ANI ", "ORI ", "XRI ", "CPI " db "DAD " db "RLC ", "RAL ", "RRC ", "RAR " db "PCHL", "JMP ", "CALL", "RST ", "RET " db "JNZ ", "JZ ", "JNC ", "JC ", "JPO ", "JPE ", "JP ", "JM " db "CNZ ", "CZ ", "CNC ", "CC ", "CPO ", "CPE ", "CP ", "CM " db "RNZ ", "RZ ", "RNC ", "RC ", "RPO ", "RPE ", "RP ", "RM " db "EI ", "DI ", "HLT ", "NOP " db "DSUB", "ARHL", "RLDE", "RIM ", "SIM ", "LDHI", "LDSI" db "RSTV", "SHLX", "LHLX", "JNK ", "JK "
disassm_reg8_8085: db "BCDEHLMA"
disassm_reg16_8085: db "B", 0, 0, 0, "D", 0, 0, 0, "H", 0, 0, 0, "SP", 0, 0, "PSW", 0
; =============================================================================
| |