get_operand_type

Get type of instruction operand
     ea - linear address of instruction
     n  - number of operand:
             0 - the first operand
             1 - the second operand
returns:
     -1      bad operand number passed

long get_operand_type(long ea, long n);

#define o_void 0 // No Operand ---------- #define o_reg 1 // General Register (al, ax, es, ds...) reg #define o_mem 2 // Direct Memory Reference (DATA) addr #define o_phrase 3 // Memory Ref [Base Reg + Index Reg] phrase #define o_displ 4 // Memory Reg [Base Reg + Index Reg + Displacement] phrase+addr #define o_imm 5 // Immediate Value value #define o_far 6 // Immediate Far Address (CODE) addr #define o_near 7 // Immediate Near Address (CODE) addr #define o_idpspec0 8 // IDP specific type #define o_idpspec1 9 // IDP specific type #define o_idpspec2 10 // IDP specific type #define o_idpspec3 11 // IDP specific type #define o_idpspec4 12 // IDP specific type #define o_idpspec5 13 // IDP specific type

// x86 #define o_trreg o_idpspec0 // trace register #define o_dbreg o_idpspec1 // debug register #define o_crreg o_idpspec2 // control register #define o_fpreg o_idpspec3 // floating point register #define o_mmxreg o_idpspec4 // mmx register #define o_xmmreg o_idpspec5 // xmm register

// arm #define o_reglist o_idpspec1 // Register list (for LDM/STM) #define o_creglist o_idpspec2 // Coprocessor register list (for CDP) #define o_creg o_idpspec3 // Coprocessor register (for LDC/STC) #define o_fpreglist o_idpspec4 // Floating point register list #define o_text o_idpspec5 // Arbitrary text stored in the operand #define o_cond (o_idpspec5+1) // ARM condition as an operand

// ppc #define o_spr o_idpspec0 // Special purpose register #define o_twofpr o_idpspec1 // Two FPRs #define o_shmbme o_idpspec2 // SH & MB & ME #define o_crf o_idpspec3 // crfield x.reg #define o_crb o_idpspec4 // crbit x.reg #define o_dcr o_idpspec5 // Device control register

Index | Previous topic | Next topic