|
ZydisMachineMode | machineMode |
| The machine mode used to decode this instruction. More...
|
|
ZydisMnemonic | mnemonic |
| The instruction-mnemonic. More...
|
|
uint8_t | length |
| The length of the decoded instruction. More...
|
|
uint8_t | data [ZYDIS_MAX_INSTRUCTION_LENGTH] |
| The raw bytes of the decoded instruction. More...
|
|
ZydisInstructionEncoding | encoding |
| The instruction-encoding (default, 3DNow, VEX, EVEX, XOP). More...
|
|
ZydisOpcodeMap | opcodeMap |
| The opcode-map. More...
|
|
uint8_t | opcode |
| The instruction-opcode. More...
|
|
uint8_t | operandSize |
| The effective operand size. More...
|
|
uint8_t | stackWidth |
| The stack width. More...
|
|
uint8_t | addressWidth |
| The effective address width. More...
|
|
uint8_t | operandCount |
| The number of instruction-operands. More...
|
|
ZydisDecodedOperand | operands [ZYDIS_MAX_OPERAND_COUNT] |
| Detailed info for all instruction operands. More...
|
|
ZydisInstructionAttributes | attributes |
| Instruction attributes. More...
|
|
uint64_t | instrAddress |
| The instruction address points at the current instruction (relative to the initial instruction pointer). More...
|
|
uint64_t | instrPointer |
| The instruction pointer points at the address of the next instruction (relative to the initial instruction pointer). More...
|
|
struct { |
ZydisCPUFlagAction action |
| The CPU-flag action. More...
|
|
} | flags [ZYDIS_CPUFLAG_ENUM_COUNT] |
| Information about accessed CPU flags. More...
|
|
struct { |
ZydisVectorLength vectorLength |
| The AVX vector-length. More...
|
|
struct { |
ZydisMaskMode mode |
| The masking mode. More...
|
|
ZydisRegister reg |
| The mask register. More...
|
|
ZydisBool isControlMask |
| Signals, if the mask-register is used as a control mask. More...
|
|
} mask |
| Info about the embedded writemask-register. More...
|
|
struct { |
ZydisBool isStatic |
| Signals, if the broadcast is a static broadcast. More...
|
|
ZydisBroadcastMode mode |
| The AVX broadcast-mode. More...
|
|
} broadcast |
| Contains info about the AVX broadcast-factor. More...
|
|
ZydisRoundingMode roundingMode |
| The AVX rounding-mode. More...
|
|
ZydisSwizzleMode swizzleMode |
| The AVX register-swizzle mode (MVEX only). More...
|
|
ZydisConversionMode conversionMode |
| The AVX data-conversion mode (MVEX only). More...
|
|
ZydisBool hasSAE |
| Signals, if the sae functionality is enabled for the instruction. More...
|
|
ZydisBool hasEvictionHint |
| Signals, if the instruction has a memory eviction-hint (MVEX only). More...
|
|
} | avx |
| Extended info for AVX instructions. More...
|
|
struct { |
struct { |
uint8_t data [ZYDIS_MAX_INSTRUCTION_LENGTH - 1] |
|
uint8_t count |
|
uint8_t hasF0 |
|
uint8_t hasF3 |
|
uint8_t hasF2 |
|
uint8_t has2E |
|
uint8_t has36 |
|
uint8_t has3E |
|
uint8_t has26 |
|
uint8_t has64 |
|
uint8_t has65 |
|
uint8_t has66 |
|
uint8_t has67 |
|
} prefixes |
| Detailed info about the legacy prefixes. More...
|
|
struct { |
ZydisBool isDecoded |
| TRUE if the prefix got already decoded. More...
|
|
uint8_t data [1] |
| The raw bytes of the prefix. More...
|
|
uint8_t W |
| 64-bit operand-size promotion. More...
|
|
uint8_t R |
| Extension of the ModRM.reg field. More...
|
|
uint8_t X |
| Extension of the SIB.index field. More...
|
|
uint8_t B |
| Extension of the ModRM.rm, SIB.base, or opcode.reg field. More...
|
|
} rex |
| Detailed info about the REX-prefix. More...
|
|
struct { |
ZydisBool isDecoded |
| TRUE if the prefix got already decoded. More...
|
|
uint8_t data [3] |
| The raw bytes of the prefix. More...
|
|
uint8_t R |
| Extension of the ModRM.reg field (inverted). More...
|
|
uint8_t X |
| Extension of the SIB.index field (inverted). More...
|
|
uint8_t B |
| Extension of the ModRM.rm, SIB.base, or opcode.reg field (inverted). More...
|
|
uint8_t m_mmmm |
| Opcode-map specifier. More...
|
|
uint8_t W |
| 64-bit operand-size promotion or opcode-extension. More...
|
|
uint8_t vvvv |
| NDS register specifier (inverted). More...
|
|
uint8_t L |
| Vector-length specifier. More...
|
|
uint8_t pp |
| Compressed legacy prefix. More...
|
|
} xop |
| Detailed info about the XOP-prefix. More...
|
|
struct { |
ZydisBool isDecoded |
| TRUE if the prefix got already decoded. More...
|
|
uint8_t data [3] |
| The raw bytes of the prefix. More...
|
|
uint8_t R |
| Extension of the ModRM.reg field (inverted). More...
|
|
uint8_t X |
| Extension of the SIB.index field (inverted). More...
|
|
uint8_t B |
| Extension of the ModRM.rm, SIB.base, or opcode.reg field (inverted). More...
|
|
uint8_t m_mmmm |
| Opcode-map specifier. More...
|
|
uint8_t W |
| 64-bit operand-size promotion or opcode-extension. More...
|
|
uint8_t vvvv |
| NDS register specifier (inverted). More...
|
|
uint8_t L |
| Vector-length specifier. More...
|
|
uint8_t pp |
| Compressed legacy prefix. More...
|
|
} vex |
| Detailed info about the VEX-prefix. More...
|
|
struct { |
ZydisBool isDecoded |
| TRUE if the prefix got already decoded. More...
|
|
uint8_t data [4] |
| The raw bytes of the prefix. More...
|
|
uint8_t R |
| Extension of the ModRM.reg field (inverted). More...
|
|
uint8_t X |
| Extension of the SIB.index/vidx field (inverted). More...
|
|
uint8_t B |
| Extension of the ModRM.rm or SIB.base field (inverted). More...
|
|
uint8_t R2 |
| High-16 register specifier modifier (inverted). More...
|
|
uint8_t mm |
| Opcode-map specifier. More...
|
|
uint8_t W |
| 64-bit operand-size promotion or opcode-extension. More...
|
|
uint8_t vvvv |
| NDS register specifier (inverted). More...
|
|
uint8_t pp |
| Compressed legacy prefix. More...
|
|
uint8_t z |
| Zeroing/Merging. More...
|
|
uint8_t L2 |
| Vector-length specifier or rounding-control (most significant bit). More...
|
|
uint8_t L |
| Vector-length specifier or rounding-control (least significant bit). More...
|
|
uint8_t b |
| Broadcast/RC/SAE Context. More...
|
|
uint8_t V2 |
| High-16 NDS/VIDX register specifier. More...
|
|
uint8_t aaa |
| Embedded opmask register specifier. More...
|
|
} evex |
| Detailed info about the EVEX-prefix. More...
|
|
struct { |
ZydisBool isDecoded |
| TRUE if the prefix got already decoded. More...
|
|
uint8_t data [4] |
| The raw bytes of the prefix. More...
|
|
uint8_t R |
| Extension of the ModRM.reg field (inverted). More...
|
|
uint8_t X |
| Extension of the SIB.index/vidx field (inverted). More...
|
|
uint8_t B |
| Extension of the ModRM.rm or SIB.base field (inverted). More...
|
|
uint8_t R2 |
| High-16 register specifier modifier (inverted). More...
|
|
uint8_t mmmm |
| Opcode-map specifier. More...
|
|
uint8_t W |
| 64-bit operand-size promotion or opcode-extension. More...
|
|
uint8_t vvvv |
| NDS register specifier (inverted). More...
|
|
uint8_t pp |
| Compressed legacy prefix. More...
|
|
uint8_t E |
| Non-temporal/eviction hint. More...
|
|
uint8_t SSS |
| Swizzle/broadcast/up-convert/down-convert/static-rounding controls. More...
|
|
uint8_t V2 |
| High-16 NDS/VIDX register specifier. More...
|
|
uint8_t kkk |
| Embedded opmask register specifier. More...
|
|
} mvex |
| Detailed info about the MVEX-prefix. More...
|
|
struct { |
ZydisBool isDecoded |
|
uint8_t data [1] |
|
uint8_t mod |
|
uint8_t reg |
|
uint8_t rm |
|
} modrm |
| Detailed info about the ModRM-byte. More...
|
|
struct { |
ZydisBool isDecoded |
|
uint8_t data [1] |
|
uint8_t scale |
|
uint8_t index |
|
uint8_t base |
|
} sib |
| Detailed info about the SIB-byte. More...
|
|
struct { |
int64_t value |
| The displacement value. More...
|
|
uint8_t size |
| The physical displacement size, in bits. More...
|
|
uint8_t offset |
| The offset of the displacement data, relative to the beginning of the instruction, in bytes. More...
|
|
} disp |
| Detailed info about displacement-bytes. More...
|
|
struct { |
ZydisBool isSigned |
| Signals, if the immediate value is signed. More...
|
|
ZydisBool isRelative |
| Signals, if the immediate value contains a relative offset. More...
|
|
union { |
uint64_t u |
|
int64_t s |
|
} value |
| The immediate value. More...
|
|
uint8_t size |
| The physical immediate size, in bits. More...
|
|
uint8_t offset |
| The offset of the immediate data, relative to the beginning of the instruction, in bytes. More...
|
|
} imm [2] |
| Detailed info about immediate-bytes. More...
|
|
} | raw |
| Extended info about different instruction-parts like ModRM, SIB or encoding-prefixes. More...
|
|
void * | userData |
| This field is intended for custom data and may be freely set by the user. More...
|
|
Defines the ZydisDecodedInstruction
struct.