Zydis
master
|
Functions for encoding instructions. More...
#include <Zycore/Types.h>
#include <Zydis/MetaInfo.h>
#include <Zydis/Register.h>
#include <Zydis/DecoderTypes.h>
#include <Zydis/Mnemonic.h>
#include <Zydis/Status.h>
Go to the source code of this file.
Data Structures | |
struct | ZydisEncoderOperand_ |
Describes explicit or implicit instruction operand. More... | |
struct | ZydisEncoderOperand_::ZydisEncoderOperandReg_ |
Extended info for register-operands. More... | |
struct | ZydisEncoderOperand_::ZydisEncoderOperandMem_ |
Extended info for memory-operands. More... | |
struct | ZydisEncoderOperand_::ZydisEncoderOperandPtr_ |
Extended info for pointer-operands. More... | |
union | ZydisEncoderOperand_::ZydisEncoderOperandImm_ |
Extended info for immediate-operands. More... | |
struct | ZydisEncoderRequest_ |
Main structure consumed by the encoder. More... | |
struct | ZydisEncoderRequest_::ZydisEncoderRequestEvexFeatures_ |
Extended info for EVEX instructions. More... | |
struct | ZydisEncoderRequest_::ZydisEncoderRequestMvexFeatures_ |
Extended info for MVEX instructions. More... | |
Macros | |
#define | ZYDIS_ENCODER_MAX_OPERANDS 5 |
Maximum number of encodable (explicit and implicit) operands. More... | |
#define | ZYDIS_ENCODABLE_PREFIXES |
Combination of all user-encodable prefixes. More... | |
Typedefs | |
typedef enum ZydisEncodableEncoding_ | ZydisEncodableEncoding |
Defines possible physical instruction encodings as bit flags, so multiple acceptable encodings can be specified simultaneously. More... | |
typedef enum ZydisBranchWidth_ | ZydisBranchWidth |
Defines encodable physical/effective sizes of relative immediate operands. More... | |
typedef enum ZydisAddressSizeHint_ | ZydisAddressSizeHint |
Defines possible values for address size hints. More... | |
typedef enum ZydisOperandSizeHint_ | ZydisOperandSizeHint |
Defines possible values for operand size hints. More... | |
typedef struct ZydisEncoderOperand_ | ZydisEncoderOperand |
Describes explicit or implicit instruction operand. More... | |
typedef struct ZydisEncoderRequest_ | ZydisEncoderRequest |
Main structure consumed by the encoder. More... | |
Functions | |
ZYAN_STATIC_ASSERT (ZYAN_BITS_TO_REPRESENT(ZYDIS_ENCODER_MAX_OPERANDS)==3) | |
ZYDIS_EXPORT ZyanStatus | ZydisEncoderEncodeInstruction (const ZydisEncoderRequest *request, void *buffer, ZyanUSize *length) |
Encodes instruction with semantics specified in encoder request structure. More... | |
ZYDIS_EXPORT ZyanStatus | ZydisEncoderEncodeInstructionAbsolute (ZydisEncoderRequest *request, void *buffer, ZyanUSize *length, ZyanU64 runtime_address) |
Encodes instruction with semantics specified in encoder request structure. More... | |
ZYDIS_EXPORT ZyanStatus | ZydisEncoderDecodedInstructionToEncoderRequest (const ZydisDecodedInstruction *instruction, const ZydisDecodedOperand *operands, ZyanU8 operand_count_visible, ZydisEncoderRequest *request) |
Converts decoded instruction to encoder request that can be passed to ZydisEncoderEncodeInstruction . More... | |
ZYDIS_EXPORT ZyanStatus | ZydisEncoderNopFill (void *buffer, ZyanUSize length) |
Fills provided buffer with NOP instructions using longest possible multi-byte instructions. More... | |
Functions for encoding instructions.
#define ZYDIS_ENCODABLE_PREFIXES |
Combination of all user-encodable prefixes.
#define ZYDIS_ENCODER_MAX_OPERANDS 5 |
Maximum number of encodable (explicit and implicit) operands.
typedef enum ZydisAddressSizeHint_ ZydisAddressSizeHint |
Defines possible values for address size hints.
See ZydisEncoderRequest
for more information about address size hints.
typedef enum ZydisBranchWidth_ ZydisBranchWidth |
Defines encodable physical/effective sizes of relative immediate operands.
See ZydisEncoderRequest.branch_width
for more details.
typedef enum ZydisEncodableEncoding_ ZydisEncodableEncoding |
Defines possible physical instruction encodings as bit flags, so multiple acceptable encodings can be specified simultaneously.
typedef struct ZydisEncoderOperand_ ZydisEncoderOperand |
Describes explicit or implicit instruction operand.
typedef struct ZydisEncoderRequest_ ZydisEncoderRequest |
Main structure consumed by the encoder.
It represents full semantics of an instruction.
typedef enum ZydisOperandSizeHint_ ZydisOperandSizeHint |
Defines possible values for operand size hints.
See ZydisEncoderRequest
for more information about operand size hints.
Defines possible values for address size hints.
See ZydisEncoderRequest
for more information about address size hints.
enum ZydisBranchWidth_ |
Defines encodable physical/effective sizes of relative immediate operands.
See ZydisEncoderRequest.branch_width
for more details.
Defines possible physical instruction encodings as bit flags, so multiple acceptable encodings can be specified simultaneously.
Defines possible values for operand size hints.
See ZydisEncoderRequest
for more information about operand size hints.
ZYAN_STATIC_ASSERT | ( | ZYAN_BITS_TO_REPRESENT(ZYDIS_ENCODER_MAX_OPERANDS) | = =3 | ) |