138 lines
5.0 KiB
C++
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
|