[][src]Struct zydis::ffi::DecodedInstruction

#[repr(C)]pub struct DecodedInstruction {
    pub machine_mode: MachineMode,
    pub mnemonic: Mnemonic,
    pub length: u8,
    pub encoding: InstructionEncoding,
    pub opcode_map: OpcodeMap,
    pub opcode: u8,
    pub stack_width: u8,
    pub operand_width: u8,
    pub address_width: u8,
    pub operand_count: u8,
    pub operands: [DecodedOperand; 10],
    pub attributes: InstructionAttributes,
    pub accessed_flags: [CPUFlagAction; 21],
    pub avx: AvxInfo,
    pub meta: MetaInfo,
    pub raw: RawInfo,
}

Fields

machine_mode: MachineMode

The machine mode used to decode this instruction.

mnemonic: Mnemonic

The instruction-mnemonic.

length: u8

The length of the decoded instruction.

encoding: InstructionEncoding

The instruciton-encoding.

opcode_map: OpcodeMap

The opcode map.

opcode: u8

The instruction opcode.

stack_width: u8

The stack width.

operand_width: u8

The effective operand width.

address_width: u8

The effective address width.

operand_count: u8

The number of instruction operands.

operands: [DecodedOperand; 10]

Detailed information for all instruction operands.

attributes: InstructionAttributes

Instruction attributes.

accessed_flags: [CPUFlagAction; 21]

The action performed to the CPUFlag used to index this array.

avx: AvxInfo

Extended information for AVX instructions.

meta: MetaInfo

Meta info.

raw: RawInfo

Detailed information about different instruction-parts.

Implementations

impl DecodedInstruction[src]

pub fn calc_absolute_address(
    &self,
    address: u64,
    operand: &DecodedOperand
) -> Result<u64>
[src]

Calculates the absolute address for the given instruction operand, using the given address as the address for this instruction.

pub fn calc_absolute_address_ex(
    &self,
    address: u64,
    operand: &DecodedOperand,
    context: &RegisterContext
) -> Result<u64>
[src]

Behaves like calc_absolute_address, but takes runtime-known values of registers passed in the context into account.

pub fn get_flags(&self, action: CPUFlagAction) -> Result<CPUFlag>[src]

Returns a mask of CPU-flags that match the given action.

pub fn get_flags_read(&self) -> Result<CPUFlag>[src]

Returns a mask of CPU-flags that are read (tested) by this instruction.

pub fn get_flags_written(&self) -> Result<CPUFlag>[src]

Returns a mask of CPU-flags that are written (modified, undefined) by this instruction.

pub fn get_segments(&self) -> Result<InstructionSegments>[src]

Returns offsets and sizes of all logical instruction segments.

Trait Implementations

impl Clone for DecodedInstruction[src]

impl Debug for DecodedInstruction[src]

impl Eq for DecodedInstruction[src]

impl Hash for DecodedInstruction[src]

impl PartialEq<DecodedInstruction> for DecodedInstruction[src]

impl StructuralEq for DecodedInstruction[src]

impl StructuralPartialEq for DecodedInstruction[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.