Files
2021-10-31 21:20:46 +02:00

138 lines
5.0 KiB
C++

/*
* Interactive disassembler (IDA).
* Copyright (c) 1990-2021 Hex-Rays
* ALL RIGHTS RESERVED.
*
*/
#ifndef __INSTRS_HPP
#define __INSTRS_HPP
extern const instruc_t Instructions[];
enum nameNum ENUM_SIZE(uint16)
{
H8_null = 0, // Unknown Operation
H8_add, // Add binary
H8_adds, // Add with sign extension
H8_addx, // Add with extend carry
H8_and, // Logical AND
H8_andc, // Logical AND with control register
H8_band, // Bit AND
H8_bra, // Branch always
H8_brn, // Branch never
H8_bhi, // Branch if higher
H8_bls, // Branch if lower or same
H8_bcc, // Branch if carry clear (higher or same)
H8_bcs, // Branch if carry set (lower)
H8_bne, // Branch if not equal
H8_beq, // Branch if equal
H8_bvc, // Branch if overflow clear
H8_bvs, // Branch if overflow set
H8_bpl, // Branch if plus
H8_bmi, // Branch if minus
H8_bge, // Branch if greates or equal
H8_blt, // Branch if less
H8_bgt, // Branch if greater
H8_ble, // Branch if less or equal
H8_bclr, // Bit clear
H8_biand, // Bit invert AND
H8_bild, // Bit invert load
H8_bior, // Bit invert OR
H8_bist, // Bit invert store
H8_bixor, // Bit invert XOR
H8_bld, // Bit load
H8_bnot, // Bit NOT
H8_bor, // Bit OR
H8_bset, // Bit set
H8_bsr, // Branch to subroutine
H8_bst, // Bit store
H8_btst, // Bit test
H8_bxor, // Bit XOR
H8_clrmac, // Clear MAC register
H8_cmp, // Compare
H8_daa, // Decimal adjust add
H8_das, // Decimal adjust subtract
H8_dec, // Decrement
H8_divxs, // Divide extended as signed
H8_divxu, // Divide extended as unsigned
H8_eepmov, // Move data to EEPROM
H8_exts, // Extend as signed
H8_extu, // Extend as unsigned
H8_inc, // Increment
H8_jmp, // Jump
H8_jsr, // Jump to subroutine
H8_ldc, // Load to control register
H8_ldm, // Load to multiple registers
H8_ldmac, // Load to MAC register
H8_mac, // Multiply and accumulate
H8_mov, // Move data
H8_movfpe, // Move from peripheral with E clock
H8_movtpe, // Move to peripheral with E clock
H8_mulxs, // Multiply extend as signed
H8_mulxu, // Multiply extend as unsigned
H8_neg, // Negate
H8_nop, // No operation
H8_not, // Logical complement
H8_or, // Logical OR
H8_orc, // Logical OR with control register
H8_pop, // Pop data from stack
H8_push, // Push data on stack
H8_rotl, // Rotate left
H8_rotr, // Rotate right
H8_rotxl, // Rotate with extend carry left
H8_rotxr, // Rotate with extend carry right
H8_rte, // Return from exception
H8_rts, // Return from subroutine
H8_shal, // Shift arithmetic left
H8_shar, // Shift arithmetic right
H8_shll, // Shift logical left
H8_shlr, // Shift logical right
H8_sleep, // Power down mode
H8_stc, // Store from control register
H8_stm, // Store from multiple registers
H8_stmac, // Store from MAC register
H8_sub, // Subtract binary
H8_subs, // Subtract with sign extension
H8_subx, // Subtract with extend carry
H8_tas, // Test and set
H8_trapa, // Trap always
H8_xor, // Logical XOR
H8_xorc, // Logical XOR with control register
// H8SX
H8_rtel, // Returns from an exception, restoring data to multiple general registers
H8_rtsl, // Returns from a subroutine, restoring data to multiple general registers
H8_movmd, // Transfers a data block
H8_movsd, // Transfers a data block with zero detection
H8_bras, // Branch always after the next instruction (delay slot)
H8_movab, // MOVe effective Address/B
H8_movaw, // MOVe effective Address/W
H8_moval, // MOVe effective Address/L
H8_bsetne, // Bit SET if Not Equal
H8_bseteq, // Bit SET if EQual
H8_bclrne, // Bit CLeaR if Not Equal
H8_bclreq, // Bit CLeaR if Equal
H8_bstz, // Bit STore Zero flag
H8_bistz, // Bit Invert STore Zero flag
H8_bfld, // Bit Field LoaD
H8_bfst, // Bit Field STore
H8_muls, // MULtiply as Signed
H8_divs, // DIVide as Signed
H8_mulu, // MULtiply as Unsigned
H8_divu, // DIVide as Unsigned
H8_mulsu, // MULtiply as Signed
H8_muluu, // MULtiply as Unsigned
H8_brabc, // BRAnch if Bit Cleared
H8_brabs, // BRAnch if Bit Set
H8_bsrbc, // Branch to SubRoutine if Bit Cleared
H8_bsrbs, // Branch to SubRoutine if Bit Set
H8_last,
};
#endif