Zydis  v2.0.0-alpha2
ZydisDecodedOperand_ Struct Reference

Defines the ZydisDecodedOperand struct. More...

#include <DecoderTypes.h>

Data Fields

uint8_t id
 The operand-id. More...
 
ZydisOperandType type
 The type of the operand. More...
 
ZydisOperandVisibility visibility
 The visibility of the operand. More...
 
ZydisOperandAction action
 The operand-action. More...
 
ZydisOperandEncoding encoding
 The operand-encoding. More...
 
uint16_t size
 The logical size of the operand (in bits). More...
 
ZydisElementType elementType
 The element-type. More...
 
ZydisElementSize elementSize
 The size of a single element. More...
 
uint16_t elementCount
 The number of elements. More...
 
struct {
   ZydisRegister   value
 The register value. More...
 
reg
 Extended info for register-operands. More...
 
struct {
   ZydisBool   isAddressGenOnly
 Signals, if the memory operand is only used for address generation. More...
 
   ZydisRegister   segment
 The segment register. More...
 
   ZydisRegister   base
 The base register. More...
 
   ZydisRegister   index
 The index register. More...
 
   uint8_t   scale
 The scale factor. More...
 
   struct {
      ZydisBool   hasDisplacement
 Signals, if the displacement value is used. More...
 
      int64_t   value
 The displacement value. More...
 
   }   disp
 Extended info for memory-operands with displacement. More...
 
mem
 Extended info for memory-operands. More...
 
struct {
   uint16_t   segment
 
   uint32_t   offset
 
ptr
 Extended info for pointer-operands. 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...
 
imm
 Extended info for immediate-operands. More...
 

Detailed Description

Defines the ZydisDecodedOperand struct.

Field Documentation

◆ action

The operand-action.

◆ base

The base register.

◆ 

struct { ... } disp

Extended info for memory-operands with displacement.

◆ elementCount

uint16_t elementCount

The number of elements.

◆ elementSize

ZydisElementSize elementSize

The size of a single element.

◆ elementType

ZydisElementType elementType

The element-type.

◆ encoding

The operand-encoding.

◆ hasDisplacement

ZydisBool hasDisplacement

Signals, if the displacement value is used.

◆ id

uint8_t id

The operand-id.

◆ 

struct { ... } imm

Extended info for immediate-operands.

◆ index

The index register.

◆ isAddressGenOnly

ZydisBool isAddressGenOnly

Signals, if the memory operand is only used for address generation.

◆ isRelative

ZydisBool isRelative

Signals, if the immediate value contains a relative offset.

You can use ZydisCalcAbsoluteAddress to determine the absolute address value.

◆ isSigned

ZydisBool isSigned

Signals, if the immediate value is signed.

◆ 

struct { ... } mem

Extended info for memory-operands.

◆ offset

uint32_t offset

◆ 

struct { ... } ptr

Extended info for pointer-operands.

◆ 

struct { ... } reg

Extended info for register-operands.

◆ s

int64_t s

◆ scale

uint8_t scale

The scale factor.

◆ segment [1/2]

ZydisRegister segment

The segment register.

◆ segment [2/2]

uint16_t segment

◆ size

uint16_t size

The logical size of the operand (in bits).

◆ type

The type of the operand.

◆ u

uint64_t u

◆ value [1/3]

The register value.

◆ value [2/3]

int64_t value

The displacement value.

◆  [3/3]

union { ... } value

The immediate value.

◆ visibility

The visibility of the operand.


The documentation for this struct was generated from the following file: