Struct op_t
#[repr(C)]pub struct op_t {Show 14 fields
pub n: uchar,
pub type_: optype_t,
pub offb: c_char,
pub offo: c_char,
pub flags: uchar,
pub dtype: op_dtype_t,
pub __bindgen_anon_1: op_t__bindgen_ty_1,
pub __bindgen_anon_2: op_t__bindgen_ty_2,
pub __bindgen_anon_3: op_t__bindgen_ty_3,
pub __bindgen_anon_4: op_t__bindgen_ty_4,
pub specflag1: c_char,
pub specflag2: c_char,
pub specflag3: c_char,
pub specflag4: c_char,
}Expand description
Operand of an instruction. \ingroup operands_t This structure is filled by the analyzer. Upon entrance to the analyzer, some fields of this structure are initialized:
- #type: ::o_void
- #offb: 0
- #offo: 0
- #flags: #OF_SHOW
Fields§
§n: ucharNumber of operand (0,1,2). Initialized once at the start of work. You have no right to change its value.
type_: optype_tType of operand (see \ref o_)
offb: c_charOffset of operand value from the instruction start (0 means unknown). Of course this field is meaningful only for certain types of operands. Leave it equal to zero if the operand has no offset. This offset should point to the ‘interesting’ part of operand. For example, it may point to the address of a function in \v{call func} or it may point to bytes holding ‘5’ in \v{mov ax, [bx+5]} Usually bytes pointed to this offset are relocated (have fixup information).
offo: c_charSame as #offb (some operands have 2 numeric values used to form an operand). This field is used for the second part of operand if it exists. Currently this field is used only for outer offsets of Motorola processors. Leave it equal to zero if the operand has no offset.
flags: uchar< \ref OF_
dtype: op_dtype_tType of operand value (see \ref dt_). This is the type of the operand itself, not the size of the addressing mode. for example, byte ptr [epb+32_bit_offset] will have the #dt_byte type.
__bindgen_anon_1: op_t__bindgen_ty_1§__bindgen_anon_2: op_t__bindgen_ty_2§__bindgen_anon_3: op_t__bindgen_ty_3§__bindgen_anon_4: op_t__bindgen_ty_4§specflag1: c_char\name Special flags The following fields are used only in idp modules. You may use them as you want to store additional information about the operand. @{
specflag2: c_char§specflag3: c_char§specflag4: c_char