[][src]Enum x64_asm::Opcode

pub enum Opcode {
    ADDRM64R64 {
        rm64: Operand,
        r64: GeneralPurposeRegister,
    },
    ADDR64RM64 {
        r64: GeneralPurposeRegister,
        rm64: Operand,
    },
    IDIVRM64 {
        rm64: Operand,
    },
    IMULR64RM64 {
        r64: GeneralPurposeRegister,
        rm64: Operand,
    },
    INCRM64 {
        rm64: Operand,
    },
    MOVRM8R8 {
        r8: GeneralPurposeRegister,
        rm8: Operand,
    },
    MOVRM64R64 {
        r64: GeneralPurposeRegister,
        rm64: Operand,
    },
    MOVRM64IMM32 {
        imm: Immediate,
        rm64: Operand,
    },
    NEGRM64 {
        rm64: Operand,
    },
    POPR64 {
        r64: GeneralPurposeRegister,
    },
    PUSHRM64 {
        rm64: Operand,
    },
    PUSHR64 {
        r64: GeneralPurposeRegister,
    },
    PUSHIMM32 {
        imm: Immediate,
    },
    SUBR64RM64 {
        r64: GeneralPurposeRegister,
        rm64: Operand,
    },
    SUBRM64R64 {
        rm64: Operand,
        r64: GeneralPurposeRegister,
    },
    SUBRM64IMM32 {
        rm64: Operand,
        imm: Immediate,
    },
}

Variants

ADDRM64R64

Add r/m64 to r64

Fields of ADDRM64R64

rm64: Operandr64: GeneralPurposeRegister
ADDR64RM64

Add r64 to r/m64

Fields of ADDR64RM64

r64: GeneralPurposeRegisterrm64: Operand
IDIVRM64

signed divide RDX:RAX by r/m64; result stored in RAX := Quotient, RDX := Remainder.

Fields of IDIVRM64

rm64: Operand
IMULR64RM64

Quadword register := Quadword register * r/m64

Fields of IMULR64RM64

r64: GeneralPurposeRegisterrm64: Operand
INCRM64

increment r/m64 by one.

Fields of INCRM64

rm64: Operand
MOVRM8R8

Move r8 to r/m8

Fields of MOVRM8R8

r8: GeneralPurposeRegisterrm8: Operand
MOVRM64R64

Move r64 to r/m64

Fields of MOVRM64R64

r64: GeneralPurposeRegisterrm64: Operand
MOVRM64IMM32

Move imm32 to r/m64

Fields of MOVRM64IMM32

imm: Immediaterm64: Operand
NEGRM64

Two's complement negate r/m64

Fields of NEGRM64

rm64: Operand
POPR64

Pop top of stack into r64; increment stack pointer; Cannot encode 32-bit operand size.

Fields of POPR64

r64: GeneralPurposeRegister
PUSHRM64

Push r/m64

Fields of PUSHRM64

rm64: Operand
PUSHR64

Push r64,

Fields of PUSHR64

r64: GeneralPurposeRegister
PUSHIMM32

Push imm32

Fields of PUSHIMM32

imm: Immediate
SUBR64RM64

Subtract r/m64 from r64

Fields of SUBR64RM64

r64: GeneralPurposeRegisterrm64: Operand
SUBRM64R64

Subtract r64 from r/m64

Fields of SUBRM64R64

rm64: Operandr64: GeneralPurposeRegister
SUBRM64IMM32

Subtract imm32 from r/m64

Fields of SUBRM64IMM32

rm64: Operandimm: Immediate

Implementations

impl Opcode[src]

pub fn to_bytes(&self) -> Vec<u8>[src]

pub fn encoding(&self) -> Encoding[src]

pub fn rex_prefix(&self) -> Option<REXPrefix>[src]

calculating REX-Prefix byte

pub fn modrm(&self) -> Option<ModRM>[src]

calculating ModR/M byte

pub fn get_displacement(&self) -> Option<Displacement>[src]

get displacement if memory operand hasn't found, it returns Option::None,

pub fn get_immediate(&self) -> Option<Immediate>[src]

pub fn sib_bite(&self) -> Option<SIBByte>[src]

pub fn to_intel_string(&self) -> String[src]

to Intel syntax.

pub fn to_at_string(&self) -> String[src]

to AT&T syntax.

Trait Implementations

impl Clone for Opcode[src]

impl Debug for Opcode[src]

impl Eq for Opcode[src]

impl Ord for Opcode[src]

impl PartialEq<Opcode> for Opcode[src]

impl PartialOrd<Opcode> for Opcode[src]

impl StructuralEq for Opcode[src]

impl StructuralPartialEq for Opcode[src]

Auto Trait Implementations

impl RefUnwindSafe for Opcode

impl Send for Opcode

impl Sync for Opcode

impl Unpin for Opcode

impl UnwindSafe for Opcode

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.