cs_x86

Instruction structure

Members

Unions

__anonymous
union __anonymous

Variables

addr_size
ubyte addr_size;

Address size, which can be overridden with above prefix[5].

avx_cc
x86_avx_cc avx_cc;

AVX Code Condition

avx_rm
x86_avx_rm avx_rm;

AVX static rounding mode

avx_sae
bool avx_sae;

AVX Suppress all Exception

disp
long disp;

Displacement value, valid if encoding.disp_offset != 0

encoding
cs_x86_encoding encoding;

< encoding information

modrm
ubyte modrm;

ModR/M byte

op_count
ubyte op_count;

Number of operands of this instruction, or 0 when instruction has no operand.

opcode
ubyte[4] opcode;

Instruction opcode, which can be from 1 to 4 bytes in size. This contains VEX opcode as well. An trailing opcode byte gets value 0 when irrelevant.

operands
cs_x86_op[8] operands;

< operands for this instruction.

prefix
ubyte[4] prefix;

Instruction prefix, which can be up to 4 bytes. A prefix byte gets value 0 when irrelevant. prefix[0] indicates REP/REPNE/LOCK prefix (See X86_PREFIX_REP/REPNE/LOCK above) prefix[1] indicates segment override (irrelevant for x86_64): See X86_PREFIX_CS/SS/DS/ES/FS/GS above. prefix[2] indicates operand-size override (X86_PREFIX_OPSIZE) prefix[3] indicates address-size override (X86_PREFIX_ADDRSIZE)

rex
ubyte rex;

REX prefix: only a non-zero value is relevant for x86_64

sib
ubyte sib;

SIB value, or 0 when irrelevant.

sib_base
x86_reg sib_base;

SIB base register, or X86_REG_INVALID when irrelevant.

sib_index
x86_reg sib_index;

SIB index register, or X86_REG_INVALID when irrelevant.

sib_scale
byte sib_scale;

SIB scale, only applicable if sib_index is valid.

sse_cc
x86_sse_cc sse_cc;

SSE Code Condition

xop_cc
x86_xop_cc xop_cc;

XOP Code Condition

Meta