99 lines
3.7 KiB
C++
99 lines
3.7 KiB
C++
/************************************************************************/
|
|
/* Disassembler for Samsung SAM8 processors */
|
|
/************************************************************************/
|
|
#ifndef __INSTRS_HPP
|
|
#define __INSTRS_HPP
|
|
|
|
|
|
/************************************************************************/
|
|
/* Instructions enumeration */
|
|
/************************************************************************/
|
|
extern const instruc_t Instructions[];
|
|
enum nameNum
|
|
{
|
|
SAM8_null = 0, // Unknown Operation
|
|
|
|
SAM8_ADC, // Add with carry
|
|
SAM8_ADD, // Add
|
|
SAM8_AND, // Logical and
|
|
SAM8_BAND, // Bit and
|
|
SAM8_BCP, // Bit compare
|
|
SAM8_BITC, // Bit complement
|
|
SAM8_BITR, // Bit reset
|
|
SAM8_BITS, // Bit set
|
|
SAM8_BOR, // Bit or
|
|
SAM8_BTJRF, // Bit test, jump relative on false
|
|
SAM8_BTJRT, // Bit test, jump relative on true
|
|
SAM8_BXOR, // Bit xor
|
|
SAM8_CALL, // Call procedure
|
|
SAM8_CCF, // Complement carry flag
|
|
SAM8_CLR, // Clear
|
|
SAM8_COM, // Complement
|
|
SAM8_CP, // Compare
|
|
SAM8_CPIJE, // Compare, increment, and jump on equal
|
|
SAM8_CPIJNE, // Compare, increment, and jump on non-equal
|
|
SAM8_DA, // Decimal adjust
|
|
SAM8_DEC, // Decrement
|
|
SAM8_DECW, // Decrement word
|
|
SAM8_DI, // Disable interrupts
|
|
SAM8_DIV, // Divide (unsigned)
|
|
SAM8_DJNZ, // Decrement and jump if non-zero
|
|
SAM8_EI, // Enable interrupts
|
|
SAM8_ENTER, // Enter
|
|
SAM8_EXIT, // Exit
|
|
SAM8_IDLE, // Idle operation
|
|
SAM8_INC, // Increment
|
|
SAM8_INCW, // Increment word
|
|
SAM8_IRET, // Interrupt return
|
|
SAM8_JP, // Jump
|
|
SAM8_JR, // Jump relative
|
|
SAM8_LD, // Load
|
|
SAM8_LDB, // Load bit
|
|
SAM8_LDC, // Load program memory
|
|
SAM8_LDE, // Load external data memory
|
|
SAM8_LDCD, // Load program memory and decrement
|
|
SAM8_LDED, // Load external data memory and decrement
|
|
SAM8_LDCI, // Load program memory and increment
|
|
SAM8_LDEI, // Load external data memory and increment
|
|
SAM8_LDCPD, // Load program memory with pre-decrement
|
|
SAM8_LDEPD, // Load external data memory with pre-decrement
|
|
SAM8_LDCPI, // Load program memory with pre-increment
|
|
SAM8_LDEPI, // Load external data memory with pre-increment
|
|
SAM8_LDW, // Load word
|
|
SAM8_MULT, // Multiply (unsigned)
|
|
SAM8_NEXT, // Next
|
|
SAM8_NOP, // No operation
|
|
SAM8_OR, // Logical or
|
|
SAM8_POP, // Pop from stack
|
|
SAM8_POPUD, // Pop user stack (decrementing)
|
|
SAM8_POPUI, // Pop user stack (incrementing)
|
|
SAM8_PUSH, // Push to stack
|
|
SAM8_PUSHUD, // Push user stack (decrementing)
|
|
SAM8_PUSHUI, // Push user stack (incrementing)
|
|
SAM8_RCF, // Reset carry flag
|
|
SAM8_RET, // Return
|
|
SAM8_RL, // Rotate left
|
|
SAM8_RLC, // Rotate left through carry
|
|
SAM8_RR, // Rotate right
|
|
SAM8_RRC, // Rotate right through carry
|
|
SAM8_SB0, // Select bank 0
|
|
SAM8_SB1, // Select bank 1
|
|
SAM8_SBC, // Subtract with carry
|
|
SAM8_SCF, // Set carry flag
|
|
SAM8_SRA, // Shift right arithmetic
|
|
SAM8_SRP, // Set register pointer
|
|
SAM8_SRP0, // Set register pointer 0
|
|
SAM8_SRP1, // Set register pointer 1
|
|
SAM8_STOP, // Stop operation
|
|
SAM8_SUB, // Subtract
|
|
SAM8_SWAP, // Swap nibbles
|
|
SAM8_TCM, // Test complement under mask
|
|
SAM8_TM, // Test under mask
|
|
SAM8_WFI, // Wait for interrupt
|
|
SAM8_XOR, // Logical exclusive or
|
|
|
|
SAM8_last
|
|
};
|
|
|
|
#endif
|