update to ida 7.6, add builds
This commit is contained in:
81
idasdk76/module/st7/ins.cpp
Normal file
81
idasdk76/module/st7/ins.cpp
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Interactive disassembler (IDA).
|
||||
* Copyright (c) 1990-2000 by Ilfak Guilfanov.
|
||||
* ALL RIGHTS RESERVED.
|
||||
* E-mail: ig@datarescue.com
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#include "st7.hpp"
|
||||
|
||||
const instruc_t Instructions[] =
|
||||
{
|
||||
{ "", 0 }, // Unknown Operation
|
||||
|
||||
{ "adc", CF_CHG1|CF_USE1|CF_USE2 }, // Add with Carry
|
||||
{ "add", CF_CHG1|CF_USE1|CF_USE2 }, // Addition
|
||||
{ "and", CF_CHG1|CF_USE1|CF_USE2 }, // Logical And
|
||||
{ "bcp", CF_USE1|CF_USE2 }, // Bit compare
|
||||
{ "bres", CF_CHG1|CF_USE1 }, // Bit Reset
|
||||
{ "bset", CF_CHG1|CF_USE1 }, // Bit Set
|
||||
{ "btjf", CF_USE1|CF_USE2|CF_USE3 }, // Jump if bit is false
|
||||
{ "btjt", CF_USE1|CF_USE2|CF_USE3 }, // Jump if bit is true
|
||||
{ "call", CF_USE1|CF_CALL }, // Call subroutine
|
||||
{ "callr", CF_USE1|CF_CALL }, // Call subroutine relative
|
||||
{ "clr", CF_CHG1 }, // Clear
|
||||
{ "cp", CF_USE1|CF_USE2 }, // Arithmetic Compare
|
||||
{ "cpl", CF_USE1|CF_CHG1 }, // One Complement
|
||||
{ "dec", CF_USE1|CF_CHG1 }, // Decrement
|
||||
{ "halt", 0 }, // Halt
|
||||
{ "iret", CF_STOP }, // Interrupt routine return
|
||||
{ "inc", CF_USE1|CF_CHG1 }, // Increment
|
||||
{ "jp", CF_USE1|CF_STOP }, // Absolute Jump
|
||||
{ "jra", CF_USE1|CF_STOP }, // Jump relative always
|
||||
{ "jrt", CF_USE1|CF_STOP }, // Jump relative
|
||||
{ "jrf", CF_USE1 }, // Never jump
|
||||
{ "jrih", CF_USE1 }, // Jump if Port INT pin = 1
|
||||
{ "jril", CF_USE1 }, // Jump if Port INT pin = 0
|
||||
{ "jrh", CF_USE1 }, // Jump if H = 1
|
||||
{ "jrnh", CF_USE1 }, // Jump if H = 0
|
||||
{ "jrm", CF_USE1 }, // Jump if I = 1
|
||||
{ "jrnm", CF_USE1 }, // Jump if I = 0
|
||||
{ "jrmi", CF_USE1 }, // Jump if N = 1 (minus)
|
||||
{ "jrpl", CF_USE1 }, // Jump if N = 0 (plus)
|
||||
{ "jreq", CF_USE1 }, // Jump if Z = 1 (equal)
|
||||
{ "jrne", CF_USE1 }, // Jump if Z = 0 (not equal)
|
||||
{ "jrc", CF_USE1 }, // Jump if C = 1
|
||||
{ "jrnc", CF_USE1 }, // Jump if C = 0
|
||||
{ "jrult", CF_USE1 }, // Jump if C = 1
|
||||
{ "jruge", CF_USE1 }, // Jump if C = 0
|
||||
{ "jrugt", CF_USE1 }, // Jump if ( C + Z = 0 )
|
||||
{ "jrule", CF_USE1 }, // Jump if ( C + Z = 1 )
|
||||
{ "ld", CF_CHG1|CF_USE2 }, // Load
|
||||
{ "mul", CF_CHG1|CF_USE1|CF_USE2 }, // Multiply
|
||||
{ "neg", CF_USE1|CF_CHG1 }, // Negate
|
||||
{ "nop", 0 }, // No Operation
|
||||
{ "or", CF_CHG1|CF_USE1|CF_USE2 }, // OR Operation
|
||||
{ "pop", CF_CHG1 }, // Pop from the Stack
|
||||
{ "push", CF_USE1 }, // Push onto the Stack
|
||||
{ "rcf", 0 }, // Reset carry flag
|
||||
{ "ret", CF_STOP }, // Subroutine Return
|
||||
{ "rim", 0 }, // Enable Interrupts
|
||||
{ "rlc", CF_USE1|CF_CHG1 }, // Rotate left true
|
||||
{ "rrc", CF_USE1|CF_CHG1 }, // Rotate right true
|
||||
{ "rsp", 0 }, // Reset Stack Pointer
|
||||
{ "sbc", CF_CHG1|CF_USE1|CF_USE2 }, // Subtract with Carry
|
||||
{ "scf", 0 }, // Set carry flag
|
||||
{ "sim", 0 }, // Disable Interrupts
|
||||
{ "sla", CF_USE1|CF_CHG1 }, // Shift left Arithmetic
|
||||
{ "sll", CF_USE1|CF_CHG1 }, // Shift left Logic
|
||||
{ "srl", CF_USE1|CF_CHG1 }, // Shift right Logic
|
||||
{ "sra", CF_USE1|CF_CHG1 }, // Shift right Arithmetic
|
||||
{ "sub", CF_CHG1|CF_USE1|CF_USE2 }, // Substraction
|
||||
{ "swap", CF_USE1|CF_CHG1 }, // SWAP nibbles
|
||||
{ "tnz", CF_USE1 }, // Test for Neg & Zero
|
||||
{ "trap", 0 }, // S/W trap
|
||||
{ "wfi", 0 }, // Wait for Interrupt
|
||||
{ "xor", CF_CHG1|CF_USE1|CF_USE2 }, // Exclusive OR
|
||||
};
|
||||
|
||||
CASSERT(qnumber(Instructions) == ST7_last);
|
||||
Reference in New Issue
Block a user