Zydis
v3.0.0
|
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
More...
#include <Zycore/Types.h>
#include <Zydis/MetaInfo.h>
#include <Zydis/Mnemonic.h>
#include <Zydis/Register.h>
#include <Zydis/SharedTypes.h>
Go to the source code of this file.
Macros | |
#define | ZYDIS_ATTRIB_HAS_MODRM 0x0000000000000001 |
The instruction has the ModRM byte. More... | |
#define | ZYDIS_ATTRIB_HAS_SIB 0x0000000000000002 |
The instruction has the SIB byte. More... | |
#define | ZYDIS_ATTRIB_HAS_REX 0x0000000000000004 |
The instruction has the REX prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_XOP 0x0000000000000008 |
The instruction has the XOP prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_VEX 0x0000000000000010 |
The instruction has the VEX prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_EVEX 0x0000000000000020 |
The instruction has the EVEX prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_MVEX 0x0000000000000040 |
The instruction has the MVEX prefix. More... | |
#define | ZYDIS_ATTRIB_IS_RELATIVE 0x0000000000000080 |
The instruction has one or more operands with position-relative offsets. More... | |
#define | ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000100 |
The instruction is privileged. More... | |
#define | ZYDIS_ATTRIB_CPUFLAG_ACCESS 0x0000001000000000 |
The instruction accesses one or more CPU-flags. More... | |
#define | ZYDIS_ATTRIB_CPU_STATE_CR 0x0000002000000000 |
The instruction may conditionally read the general CPU state. More... | |
#define | ZYDIS_ATTRIB_CPU_STATE_CW 0x0000004000000000 |
The instruction may conditionally write the general CPU state. More... | |
#define | ZYDIS_ATTRIB_FPU_STATE_CR 0x0000008000000000 |
The instruction may conditionally read the FPU state (X87, MMX). More... | |
#define | ZYDIS_ATTRIB_FPU_STATE_CW 0x0000010000000000 |
The instruction may conditionally write the FPU state (X87, MMX). More... | |
#define | ZYDIS_ATTRIB_XMM_STATE_CR 0x0000020000000000 |
The instruction may conditionally read the XMM state (AVX, AVX2, AVX-512). More... | |
#define | ZYDIS_ATTRIB_XMM_STATE_CW 0x0000040000000000 |
The instruction may conditionally write the XMM state (AVX, AVX2, AVX-512). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_LOCK 0x0000000000000200 |
The instruction accepts the LOCK prefix (0xF0 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REP 0x0000000000000400 |
The instruction accepts the REP prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPE 0x0000000000000800 |
The instruction accepts the REPE /REPZ prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPZ 0x0000000000000800 |
The instruction accepts the REPE /REPZ prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPNE 0x0000000000001000 |
The instruction accepts the REPNE /REPNZ prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPNZ 0x0000000000001000 |
The instruction accepts the REPNE /REPNZ prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_BND 0x0000000000002000 |
The instruction accepts the BND prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_XACQUIRE 0x0000000000004000 |
The instruction accepts the XACQUIRE prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_XRELEASE 0x0000000000008000 |
The instruction accepts the XRELEASE prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK 0x0000000000010000 |
The instruction accepts the XACQUIRE /XRELEASE prefixes (0xF2 , 0xF3 ) without the LOCK prefix (0x0F ). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_BRANCH_HINTS 0x0000000000020000 |
The instruction accepts branch hints (0x2E, 0x3E). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_SEGMENT 0x0000000000040000 |
The instruction accepts segment prefixes (0x2E , 0x36 , 0x3E , 0x26 , 0x64 , 0x65 ). More... | |
#define | ZYDIS_ATTRIB_HAS_LOCK 0x0000000000080000 |
The instruction has the LOCK prefix (0xF0 ). More... | |
#define | ZYDIS_ATTRIB_HAS_REP 0x0000000000100000 |
The instruction has the REP prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_HAS_REPE 0x0000000000200000 |
The instruction has the REPE /REPZ prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_HAS_REPZ 0x0000000000200000 |
The instruction has the REPE /REPZ prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_HAS_REPNE 0x0000000000400000 |
The instruction has the REPNE /REPNZ prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_HAS_REPNZ 0x0000000000400000 |
The instruction has the REPNE /REPNZ prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_HAS_BND 0x0000000000800000 |
The instruction has the BND prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_HAS_XACQUIRE 0x0000000001000000 |
The instruction has the XACQUIRE prefix (0xF2 ). More... | |
#define | ZYDIS_ATTRIB_HAS_XRELEASE 0x0000000002000000 |
The instruction has the XRELEASE prefix (0xF3 ). More... | |
#define | ZYDIS_ATTRIB_HAS_BRANCH_NOT_TAKEN 0x0000000004000000 |
The instruction has the branch-not-taken hint (0x2E ). More... | |
#define | ZYDIS_ATTRIB_HAS_BRANCH_TAKEN 0x0000000008000000 |
The instruction has the branch-taken hint (0x3E ). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT 0x00000003F0000000 |
The instruction has a segment modifier. More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_CS 0x0000000010000000 |
The instruction has the CS segment modifier (0x2E ). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_SS 0x0000000020000000 |
The instruction has the SS segment modifier (0x36 ). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_DS 0x0000000040000000 |
The instruction has the DS segment modifier (0x3E ). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_ES 0x0000000080000000 |
The instruction has the ES segment modifier (0x26 ). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_FS 0x0000000100000000 |
The instruction has the FS segment modifier (0x64 ). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_GS 0x0000000200000000 |
The instruction has the GS segment modifier (0x65 ). More... | |
#define | ZYDIS_ATTRIB_HAS_OPERANDSIZE 0x0000000400000000 |
The instruction has the operand-size override prefix (0x66 ). More... | |
#define | ZYDIS_ATTRIB_HAS_ADDRESSSIZE 0x0000000800000000 |
The instruction has the address-size override prefix (0x67 ). More... | |
Typedefs | |
typedef enum ZydisMemoryOperandType_ | ZydisMemoryOperandType |
Defines the ZydisMemoryOperandType enum. More... | |
typedef struct ZydisDecodedOperand_ | ZydisDecodedOperand |
Defines the ZydisDecodedOperand struct. More... | |
typedef ZyanU64 | ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes data-type. More... | |
typedef ZyanU32 | ZydisCPUFlags |
Defines the ZydisCPUFlags data-type. More... | |
typedef enum ZydisCPUFlag_ | ZydisCPUFlag |
Defines the ZydisCPUFlag enum. More... | |
typedef enum ZydisCPUFlagAction_ | ZydisCPUFlagAction |
Defines the ZydisCPUFlagAction enum. More... | |
typedef enum ZydisBranchType_ | ZydisBranchType |
Defines the ZydisBranchType enum. More... | |
typedef enum ZydisExceptionClass_ | ZydisExceptionClass |
Defines the ZydisExceptionClass enum. More... | |
typedef enum ZydisMaskMode_ | ZydisMaskMode |
Defines the ZydisMaskMode enum. More... | |
typedef enum ZydisBroadcastMode_ | ZydisBroadcastMode |
Defines the ZydisBroadcastMode enum. More... | |
typedef enum ZydisRoundingMode_ | ZydisRoundingMode |
Defines the ZydisRoundingMode enum. More... | |
typedef enum ZydisSwizzleMode_ | ZydisSwizzleMode |
Defines the ZydisSwizzleMode enum. More... | |
typedef enum ZydisConversionMode_ | ZydisConversionMode |
Defines the ZydisConversionMode enum. More... | |
typedef enum ZydisPrefixType_ | ZydisPrefixType |
Defines the ZydisPrefixType enum. More... | |
typedef struct ZydisDecodedInstruction_ | ZydisDecodedInstruction |
Defines the ZydisDecodedInstruction struct. More... | |
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
#define ZYDIS_ATTRIB_ACCEPTS_BND 0x0000000000002000 |
The instruction accepts the BND
prefix (0xF2
).
#define ZYDIS_ATTRIB_ACCEPTS_BRANCH_HINTS 0x0000000000020000 |
The instruction accepts branch hints (0x2E, 0x3E).
#define ZYDIS_ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK 0x0000000000010000 |
The instruction accepts the XACQUIRE
/XRELEASE
prefixes (0xF2
, 0xF3
) without the LOCK
prefix (0x0F
).
#define ZYDIS_ATTRIB_ACCEPTS_LOCK 0x0000000000000200 |
The instruction accepts the LOCK
prefix (0xF0
).
#define ZYDIS_ATTRIB_ACCEPTS_REP 0x0000000000000400 |
The instruction accepts the REP
prefix (0xF3
).
#define ZYDIS_ATTRIB_ACCEPTS_REPE 0x0000000000000800 |
The instruction accepts the REPE
/REPZ
prefix (0xF3
).
#define ZYDIS_ATTRIB_ACCEPTS_REPNE 0x0000000000001000 |
The instruction accepts the REPNE
/REPNZ
prefix (0xF2
).
#define ZYDIS_ATTRIB_ACCEPTS_REPNZ 0x0000000000001000 |
The instruction accepts the REPNE
/REPNZ
prefix (0xF2
).
#define ZYDIS_ATTRIB_ACCEPTS_REPZ 0x0000000000000800 |
The instruction accepts the REPE
/REPZ
prefix (0xF3
).
#define ZYDIS_ATTRIB_ACCEPTS_SEGMENT 0x0000000000040000 |
The instruction accepts segment prefixes (0x2E
, 0x36
, 0x3E
, 0x26
, 0x64
, 0x65
).
#define ZYDIS_ATTRIB_ACCEPTS_XACQUIRE 0x0000000000004000 |
The instruction accepts the XACQUIRE
prefix (0xF2
).
#define ZYDIS_ATTRIB_ACCEPTS_XRELEASE 0x0000000000008000 |
The instruction accepts the XRELEASE
prefix (0xF3
).
#define ZYDIS_ATTRIB_CPU_STATE_CR 0x0000002000000000 |
The instruction may conditionally read the general CPU state.
#define ZYDIS_ATTRIB_CPU_STATE_CW 0x0000004000000000 |
The instruction may conditionally write the general CPU state.
#define ZYDIS_ATTRIB_CPUFLAG_ACCESS 0x0000001000000000 |
The instruction accesses one or more CPU-flags.
#define ZYDIS_ATTRIB_FPU_STATE_CR 0x0000008000000000 |
The instruction may conditionally read the FPU state (X87, MMX).
#define ZYDIS_ATTRIB_FPU_STATE_CW 0x0000010000000000 |
The instruction may conditionally write the FPU state (X87, MMX).
#define ZYDIS_ATTRIB_HAS_ADDRESSSIZE 0x0000000800000000 |
The instruction has the address-size override prefix (0x67
).
#define ZYDIS_ATTRIB_HAS_BND 0x0000000000800000 |
The instruction has the BND
prefix (0xF2
).
#define ZYDIS_ATTRIB_HAS_BRANCH_NOT_TAKEN 0x0000000004000000 |
The instruction has the branch-not-taken hint (0x2E
).
#define ZYDIS_ATTRIB_HAS_BRANCH_TAKEN 0x0000000008000000 |
The instruction has the branch-taken hint (0x3E
).
#define ZYDIS_ATTRIB_HAS_EVEX 0x0000000000000020 |
The instruction has the EVEX
prefix.
#define ZYDIS_ATTRIB_HAS_LOCK 0x0000000000080000 |
The instruction has the LOCK
prefix (0xF0
).
#define ZYDIS_ATTRIB_HAS_MODRM 0x0000000000000001 |
The instruction has the ModRM
byte.
#define ZYDIS_ATTRIB_HAS_MVEX 0x0000000000000040 |
The instruction has the MVEX
prefix.
#define ZYDIS_ATTRIB_HAS_OPERANDSIZE 0x0000000400000000 |
The instruction has the operand-size override prefix (0x66
).
#define ZYDIS_ATTRIB_HAS_REP 0x0000000000100000 |
The instruction has the REP
prefix (0xF3
).
#define ZYDIS_ATTRIB_HAS_REPE 0x0000000000200000 |
The instruction has the REPE
/REPZ
prefix (0xF3
).
#define ZYDIS_ATTRIB_HAS_REPNE 0x0000000000400000 |
The instruction has the REPNE
/REPNZ
prefix (0xF2
).
#define ZYDIS_ATTRIB_HAS_REPNZ 0x0000000000400000 |
The instruction has the REPNE
/REPNZ
prefix (0xF2
).
#define ZYDIS_ATTRIB_HAS_REPZ 0x0000000000200000 |
The instruction has the REPE
/REPZ
prefix (0xF3
).
#define ZYDIS_ATTRIB_HAS_REX 0x0000000000000004 |
The instruction has the REX
prefix.
#define ZYDIS_ATTRIB_HAS_SEGMENT 0x00000003F0000000 |
The instruction has a segment modifier.
#define ZYDIS_ATTRIB_HAS_SEGMENT_CS 0x0000000010000000 |
The instruction has the CS
segment modifier (0x2E
).
#define ZYDIS_ATTRIB_HAS_SEGMENT_DS 0x0000000040000000 |
The instruction has the DS
segment modifier (0x3E
).
#define ZYDIS_ATTRIB_HAS_SEGMENT_ES 0x0000000080000000 |
The instruction has the ES
segment modifier (0x26
).
#define ZYDIS_ATTRIB_HAS_SEGMENT_FS 0x0000000100000000 |
The instruction has the FS
segment modifier (0x64
).
#define ZYDIS_ATTRIB_HAS_SEGMENT_GS 0x0000000200000000 |
The instruction has the GS
segment modifier (0x65
).
#define ZYDIS_ATTRIB_HAS_SEGMENT_SS 0x0000000020000000 |
The instruction has the SS
segment modifier (0x36
).
#define ZYDIS_ATTRIB_HAS_SIB 0x0000000000000002 |
The instruction has the SIB
byte.
#define ZYDIS_ATTRIB_HAS_VEX 0x0000000000000010 |
The instruction has the VEX
prefix.
#define ZYDIS_ATTRIB_HAS_XACQUIRE 0x0000000001000000 |
The instruction has the XACQUIRE
prefix (0xF2
).
#define ZYDIS_ATTRIB_HAS_XOP 0x0000000000000008 |
The instruction has the XOP
prefix.
#define ZYDIS_ATTRIB_HAS_XRELEASE 0x0000000002000000 |
The instruction has the XRELEASE
prefix (0xF3
).
#define ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000100 |
The instruction is privileged.
Privileged instructions are any instructions that require a current ring level below 3.
#define ZYDIS_ATTRIB_IS_RELATIVE 0x0000000000000080 |
The instruction has one or more operands with position-relative offsets.
#define ZYDIS_ATTRIB_XMM_STATE_CR 0x0000020000000000 |
The instruction may conditionally read the XMM state (AVX, AVX2, AVX-512).
#define ZYDIS_ATTRIB_XMM_STATE_CW 0x0000040000000000 |
The instruction may conditionally write the XMM state (AVX, AVX2, AVX-512).
typedef enum ZydisBranchType_ ZydisBranchType |
Defines the ZydisBranchType
enum.
typedef enum ZydisBroadcastMode_ ZydisBroadcastMode |
Defines the ZydisBroadcastMode
enum.
typedef enum ZydisConversionMode_ ZydisConversionMode |
Defines the ZydisConversionMode
enum.
typedef enum ZydisCPUFlag_ ZydisCPUFlag |
Defines the ZydisCPUFlag
enum.
typedef enum ZydisCPUFlagAction_ ZydisCPUFlagAction |
Defines the ZydisCPUFlagAction
enum.
typedef ZyanU32 ZydisCPUFlags |
Defines the ZydisCPUFlags
data-type.
typedef struct ZydisDecodedInstruction_ ZydisDecodedInstruction |
Defines the ZydisDecodedInstruction
struct.
typedef struct ZydisDecodedOperand_ ZydisDecodedOperand |
Defines the ZydisDecodedOperand
struct.
typedef enum ZydisExceptionClass_ ZydisExceptionClass |
Defines the ZydisExceptionClass
enum.
typedef ZyanU64 ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes
data-type.
typedef enum ZydisMaskMode_ ZydisMaskMode |
Defines the ZydisMaskMode
enum.
typedef enum ZydisMemoryOperandType_ ZydisMemoryOperandType |
Defines the ZydisMemoryOperandType
enum.
typedef enum ZydisPrefixType_ ZydisPrefixType |
Defines the ZydisPrefixType
enum.
typedef enum ZydisRoundingMode_ ZydisRoundingMode |
Defines the ZydisRoundingMode
enum.
typedef enum ZydisSwizzleMode_ ZydisSwizzleMode |
Defines the ZydisSwizzleMode
enum.
enum ZydisBranchType_ |
Defines the ZydisBranchType
enum.
enum ZydisBroadcastMode_ |
Defines the ZydisBroadcastMode
enum.
enum ZydisConversionMode_ |
Defines the ZydisConversionMode
enum.
enum ZydisCPUFlag_ |
Defines the ZydisCPUFlag
enum.
enum ZydisCPUFlagAction_ |
Defines the ZydisCPUFlagAction
enum.
enum ZydisExceptionClass_ |
Defines the ZydisExceptionClass
enum.
enum ZydisMaskMode_ |
Defines the ZydisMaskMode
enum.
Defines the ZydisMemoryOperandType
enum.
enum ZydisPrefixType_ |
Defines the ZydisPrefixType
enum.
enum ZydisRoundingMode_ |
Defines the ZydisRoundingMode
enum.
enum ZydisSwizzleMode_ |
Defines the ZydisSwizzleMode
enum.