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

93 lines
3.1 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(uint8)
{
I51_null = 0, // Unknown Operation
I51_acall, // Absolute Call
I51_add, // Add Second Operand to Acc
I51_addc, // Add Second Operand to Acc with carry
I51_ajmp, // Absolute Jump
I51_anl, // Logical AND (op1 &= op2)
I51_cjne, // Compare Operands and JNE
I51_clr, // Clear Operand (0)
I51_cpl, // Complement Operand
I51_da, // Decimal Adjust Accumulator
I51_dec, // Decrement Operand
I51_div, // Divide Acc by B
I51_djnz, // Decrement Operand and JNZ
I51_inc, // Increment Operand
I51_jb, // Jump if Bit is set
I51_jbc, // Jump if Bit is set & clear Bit
I51_jc, // Jump if Carry is set
I51_jmp, // Jump indirect relative to Data Pointer
I51_jnb, // Jump if Bit is clear
I51_jnc, // Jump if Carry is clear
I51_jnz, // Jump if Acc is not zero
I51_jz, // Jump if Acc is zero
I51_lcall, // Long Subroutine Call
I51_ljmp, // Long Jump
I51_mov, // Move (Op1 <- Op2)
I51_movc, // Move code byte relative to second op to Acc
I51_movx, // Move from/to external RAM
I51_mul, // Multiply Acc by B
I51_nop, // No operation
I51_orl, // Logical OR (op1 |= op2)
I51_pop, // Pop from Stack and put in Direct RAM
I51_push, // Push from Direct RAM to Stack
I51_ret, // Return from subroutine
I51_reti, // Return from Interrupt
I51_rl, // Rotate Acc left
I51_rlc, // Rotate Acc left through Carry
I51_rr, // Rotate Acc right
I51_rrc, // Rotate Acc right through Carry
I51_setb, // Set Direct Bit
I51_sjmp, // Short jump
I51_subb, // Subtract Second Operand from Acc with Borrow
I51_swap, // Swap nibbles of Acc
I51_xch, // Exchange Operands
I51_xchd, // Exchange Digit in Acc with Indirect RAM
I51_xrl, // Exclusive OR (op1 ^= op2)
// 80251 instructions
I51_jsle, // Jump if less than or equal (signed)
I51_jsg, // Jump if greater than (signed)
I51_jle, // Jump if less than or equal
I51_jg, // Jump if greater than
I51_jsl, // Jump if less than (signed)
I51_jsge, // Jump if greater than or equal (signed)
I51_je, // Jump if equal
I51_jne, // Jump if not equal
I51_trap, // Trap
I51_ejmp, // Extended jump
I51_ecall, // Extended call
I51_eret, // Extended return
I51_movh, // Move immediate 16-bit data to the high word of a dword (double-word) register
I51_movz, // Move 8-bit register to 16-bit register with zero extension
I51_movs, // Move 8-bit register to 16-bit register with sign extension
I51_srl, // Shift logical right by 1 bit
I51_sra, // Shift arithmetic right by 1 bit
I51_sll, // Shift logical left by 1 bit
I51_sub, // Subtract
I51_cmp, // Compare
// 51mx instructions
I51_emov, // Move (A <- @PRi+disp) or (@PRi+disp <- A)
I51_last,
};
#endif