Repository URL to install this package:
Version:
9.0~241217-2.fc42 ▾
|
/*
This module has been created by Petr Novak
*/
#include "xa.hpp"
const instruc_t Instructions[] =
{
{ "", 0 }, // Unknown Operation
{ "add", CF_USE1|CF_USE2|CF_CHG1 }, // Add Second Operand to Acc
{ "addc", CF_USE1|CF_USE2|CF_CHG1 }, // Add Second Operand to Acc with carry
{ "adds", CF_USE1|CF_USE2|CF_CHG1 }, // Add Second Operand to Acc
{ "and", CF_USE1|CF_USE2|CF_CHG1 }, // Logical AND (op1 &= op2)
{ "anl", CF_USE1|CF_USE2|CF_CHG1 }, // Logical AND Carry and Bit
{ "asl", CF_USE1|CF_USE2|CF_CHG1 }, // Logical shift left
{ "asr", CF_USE1|CF_USE2|CF_CHG1 }, // Arithmetic shift left
{ "bcc", CF_USE1 }, // Branch if Carry clear
{ "bcs", CF_USE1 }, // Branch if Carry set
{ "beq", CF_USE1 }, // Branch if Zero
{ "bg", CF_USE1 }, // Branch if Greater than (unsigned)
{ "bge", CF_USE1 }, // Branch if Greater than or equal to (signed)
{ "bgt", CF_USE1 }, // Branch if Greater than (signed)
{ "bkpt", 0 }, // Breakpoint
{ "bl", CF_USE1 }, // Branch if Less than or equal to (unsigned)
{ "ble", CF_USE1 }, // Branch if less than or equal to (signed)
{ "blt", CF_USE1 }, // Branch if less than (signed)
{ "bmi", CF_USE1 }, // Branch if negative
{ "bne", CF_USE1 }, // Branch if not equal
{ "bnv", CF_USE1 }, // Branch if no overflow
{ "bov", CF_USE1 }, // Branch if overflow flag
{ "bpl", CF_USE1 }, // Branch if positive
{ "br", CF_USE1|CF_STOP|CF_JUMP }, // Branch always
{ "call", CF_USE1|CF_CALL }, // Call Subroutine
{ "cjne", CF_USE1|CF_USE2|CF_USE3 }, // Compare Operands and JNE
{ "clr", CF_CHG1 }, // Clear Operand (0)
{ "cmp", CF_USE1|CF_USE2 }, // Compare destination and source registers
{ "cpl", CF_USE1|CF_CHG1 }, // Complement Operand
{ "da", CF_USE1|CF_CHG1 }, // Decimal Adjust Accumulator
{ "div", CF_USE1|CF_CHG1|CF_USE2 }, // Divide
{ "divu", CF_USE1|CF_CHG1|CF_USE2 }, // Divide
{ "djnz", CF_USE1|CF_CHG1|CF_USE2 }, // Decrement Operand and JNZ
{ "fcall", CF_USE1|CF_CALL }, // Far Call
{ "fjmp", CF_USE1|CF_STOP|CF_JUMP }, // Far Jump
{ "jb", CF_USE1|CF_USE2 }, // Jump if Bit is set
{ "jbc", CF_USE1|CF_USE2 }, // Jump if Bit is set & clear Bit
{ "jmp", CF_USE1|CF_STOP|CF_JUMP }, // Jump indirect relative to Data Pointer
{ "jnb", CF_USE1|CF_USE2 }, // Jump if Bit is clear
{ "jnz", CF_USE1 }, // Jump if Acc is not zero
{ "jz", CF_USE1 }, // Jump if Acc is zero
{ "lea", CF_CHG1|CF_USE2 }, // Load effective address
{ "lsr", CF_USE1|CF_CHG1|CF_USE2 }, // Logical shift right
{ "mov", CF_CHG1|CF_USE2 }, // Move (Op1 <- Op2)
{ "movc", CF_CHG1|CF_USE2 }, // Move code byte relative to second op to Acc
{ "movs", CF_CHG1|CF_USE2 }, // Move short
{ "movx", CF_CHG1|CF_USE2 }, // Move from/to external RAM
{ "mul", CF_USE1|CF_CHG1|CF_USE2 }, // Multiply
{ "mulu", CF_USE1|CF_CHG1|CF_USE2 }, // Multiply unsigned
{ "neg", CF_USE1|CF_CHG1 }, // Negate
{ "nop", 0 }, // No operation
{ "norm", CF_USE1|CF_CHG1|CF_CHG2 }, // Normalize
{ "or", CF_USE1|CF_USE2|CF_CHG1 }, // Logical OR (op1 |= op2)
{ "orl", CF_USE1|CF_USE2|CF_CHG1 }, // Logical OR Carry
{ "pop", CF_CHG1 }, // Pop from Stack and put in Direct RAM
{ "popu", CF_CHG1 }, // Pop from Stack and put in Direct RAM
{ "push", CF_USE1 }, // Push from Direct RAM to Stack
{ "pushu", CF_USE1 }, // Push from Direct RAM to Stack
{ "reset", 0 }, // Software reset
{ "ret", CF_STOP }, // Return from subroutine
{ "reti", CF_STOP }, // Return from Interrupt
{ "rl", CF_USE1|CF_CHG1|CF_USE2 }, // Rotate Acc left
{ "rlc", CF_USE1|CF_CHG1|CF_USE2 }, // Rotate Acc left through Carry
{ "rr", CF_USE1|CF_CHG1|CF_USE2 }, // Rotate Acc right
{ "rrc", CF_USE1|CF_CHG1|CF_USE2 }, // Rotate Acc right through Carry
{ "setb", CF_CHG1 }, // Set Direct Bit
{ "sext", CF_CHG1 }, // Sign extend
{ "sub", CF_USE1|CF_USE2|CF_CHG1 }, // Subtract Second Operand from Acc with Borrow
{ "subb", CF_USE1|CF_USE2|CF_CHG1 }, // Subtract Second Operand from Acc with Borrow
{ "trap", CF_USE1 }, // Software TRAP
{ "xch", CF_USE1|CF_CHG1|CF_USE2|CF_CHG2 }, // Exchange Operands
{ "xor", CF_USE1|CF_USE2|CF_CHG1 }, // Exclusive OR (op1 ^= op2)
};
CASSERT(sizeof(Instructions)/sizeof(Instructions[0]) == XA_last);