1 #ifndef CAPSTONE_M680X_H
2 #define CAPSTONE_M680X_H
14 #pragma warning(disable:4201)
17 #define M680X_OPERAND_COUNT 9
68 #define M680X_OFFSET_NONE 0
69 #define M680X_OFFSET_BITS_5 5
70 #define M680X_OFFSET_BITS_8 8
71 #define M680X_OFFSET_BITS_9 9
72 #define M680X_OFFSET_BITS_16 16
76 #define M680X_IDX_INDIRECT 1
77 #define M680X_IDX_NO_COMMA 2
78 #define M680X_IDX_POST_INC_DEC 4
159 #define M680X_FIRST_OP_IN_MNEM 1
162 #define M680X_SECOND_OP_IN_MNEM 2
struct m680x_op_rel m680x_op_rel
Instruction's memory operand referring to relative addressing (Bcc/LBcc)
struct m680x_op_idx m680x_op_idx
Instruction's operand referring to indexed addressing.
struct m680x_op_ext m680x_op_ext
Instruction's operand referring to extended addressing.
struct cs_m680x cs_m680x
The M680X instruction and it's operands.
m680x_insn
M680X instruction IDs.
@ M680X_INS_PULB
M6800/1/2/3.
@ M680X_INS_ABA
M6800/1/2/3.
@ M680X_INS_PSHB
M6800/1/2/3.
@ M680X_INS_ORAB
M6800/1/2/3.
@ M680X_INS_CBA
M6800/1/2/3.
@ M680X_INS_WAI
M6800/1/2/3.
@ M680X_INS_LDAB
M6800/1/2/3.
@ M680X_INS_TBA
M6800/1/2/3.
@ M680X_INS_PSHX
M6800/1/2/3.
@ M680X_INS_TPA
M6800/1/2/3.
@ M680X_INS_CLI
M6800/1/2/3.
@ M680X_INS_PULA
M6800/1/2/3.
@ M680X_INS_STAB
M6800/1/2/3.
@ M680X_INS_TXS
M6800/1/2/3.
@ M680X_INS_DES
M6800/1/2/3.
@ M680X_INS_TAB
M6800/1/2/3.
@ M680X_INS_ORAA
M6800/1/2/3.
@ M680X_INS_TAP
M6800/1/2/3.
@ M680X_INS_INS
M6800/1/2/3.
@ M680X_INS_TSX
M6800/1/2/3.
@ M680X_INS_CLC
M6800/1/2/3.
@ M680X_INS_STAA
M6800/1/2/3.
@ M680X_INS_PSHA
M6800/1/2/3.
@ M680X_INS_SBA
M6800/1/2/3.
@ M680X_INS_LDAA
M6800/1/2/3.
@ M680X_INS_INX
M6800/1/2/3.
@ M680X_INS_CLV
M6800/1/2/3.
@ M680X_INS_CPX
M6800/1/2/3.
@ M680X_INS_DEX
M6800/1/2/3.
@ M680X_INS_PULX
M6800/1/2/3.
struct cs_m680x_op cs_m680x_op
Instruction operand.
m680x_reg
M680X registers and special registers.
@ M680X_REG_DP
M6809/M6309.
@ M680X_REG_B
M6800/1/2/3/9, HD6301/9.
@ M680X_REG_ENDING
<– mark the end of the list of registers
@ M680X_REG_CC
M6800/1/2/3/9, M6301/9.
@ M680X_REG_X
M6800/1/2/3/9, M6301/9.
@ M680X_REG_S
M6809/M6309.
@ M680X_REG_A
M6800/1/2/3/9, HD6301/9.
@ M680X_REG_PC
M6800/1/2/3/9, M6301/9.
@ M680X_REG_Y
M6809/M6309.
@ M680X_REG_D
M6801/3/9, HD6301/9.
@ M680X_REG_U
M6809/M6309.
m680x_op_type
Operand type for instruction's operands.
@ M680X_OP_EXTENDED
= Extended addressing operand.
@ M680X_OP_INDEXED
= Indexed addressing operand.
@ M680X_OP_CONSTANT
Used e.g. for a bit index or page number.
@ M680X_OP_IMMEDIATE
= Immediate operand.
@ M680X_OP_INVALID
= CS_OP_INVALID (Uninitialized).
@ M680X_OP_REGISTER
= Register operand.
@ M680X_OP_RELATIVE
= Relative addressing operand.
@ M680X_OP_DIRECT
= Direct addressing operand.
#define M680X_OPERAND_COUNT
m680x_group_type
Group of M680X instructions.
@ M680X_GRP_PRIV
= CS_GRP_PRIVILEDGE; not used
@ M680X_GRP_BRAREL
= CS_GRP_BRANCH_RELATIVE
@ M680X_GRP_IRET
= CS_GRP_IRET
@ M680X_GRP_RET
= CS_GRP_RET
@ M680X_GRP_INT
= CS_GRP_INT
@ M680X_GRP_JUMP
= CS_GRP_INVALID
@ M680X_GRP_CALL
= CS_GRP_CALL
m680x_op_idx idx
Indexed addressing operand.
uint8_t const_val
constant value (bit index, page nr.)
m680x_op_rel rel
Relative address. operand (Bcc/LBcc)
m680x_reg reg
register value for REG operand
m680x_op_ext ext
Extended address.
int32_t imm
immediate value for IMM operand
uint8_t direct_addr
</ Direct address (lower 8-bit)
The M680X instruction and it's operands.
uint8_t flags
See: M680X instruction flags.
uint8_t op_count
number of operands for the instruction or 0
Instruction's operand referring to extended addressing.
uint16_t address
The absolute address.
bool indirect
true if extended indirect addressing
Instruction's operand referring to indexed addressing.
m680x_reg offset_reg
irrelevant)
m680x_reg base_reg
irrelevant)
int16_t offset
5-,8- or 16-bit offset. See also offset_bits.
uint8_t flags
8-bit flags (see above)
uint8_t offset_bits
offset width in bits for indexed addressing
uint16_t offset_addr
calculated as offset + PC
Instruction's memory operand referring to relative addressing (Bcc/LBcc)
int16_t offset
the offset/displacement value