Struct iced_x86::MemoryOperand
source · [−]pub struct MemoryOperand {
pub segment_prefix: Register,
pub base: Register,
pub index: Register,
pub scale: u32,
pub displacement: i64,
pub displ_size: u32,
pub is_broadcast: bool,
}Expand description
Memory operand passed to one of Instruction’s with_*() constructor methods
Fields
segment_prefix: RegisterSegment override or Register::None
base: RegisterBase register or Register::None
index: RegisterIndex register or Register::None
scale: u32Index register scale (1, 2, 4, or 8)
displacement: i64Memory displacement
displ_size: u320 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in a i8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)
is_broadcast: booltrue if it’s broadcast memory (EVEX instructions)
Implementations
sourceimpl MemoryOperand
impl MemoryOperand
sourcepub const fn new(
base: Register,
index: Register,
scale: u32,
displacement: i64,
displ_size: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
pub const fn new(
base: Register,
index: Register,
scale: u32,
displacement: i64,
displ_size: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
Constructor
Arguments
base: Base register orRegister::Noneindex: Index register orRegister::Nonescale: Index register scale (1, 2, 4, or 8)displacement: Memory displacementdispl_size: 0 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in ai8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)is_broadcast:trueif it’s broadcast memory (EVEX instructions)segment_prefix: Segment override orRegister::None
sourcepub const fn with_base_index_scale_bcst_seg(
base: Register,
index: Register,
scale: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
pub const fn with_base_index_scale_bcst_seg(
base: Register,
index: Register,
scale: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
Constructor
Arguments
base: Base register orRegister::Noneindex: Index register orRegister::Nonescale: Index register scale (1, 2, 4, or 8)is_broadcast:trueif it’s broadcast memory (EVEX instructions)segment_prefix: Segment override orRegister::None
sourcepub const fn with_base_displ_size_bcst_seg(
base: Register,
displacement: i64,
displ_size: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
pub const fn with_base_displ_size_bcst_seg(
base: Register,
displacement: i64,
displ_size: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
Constructor
Arguments
base: Base register orRegister::Nonedisplacement: Memory displacementdispl_size: 0 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in ai8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)is_broadcast:trueif it’s broadcast memory (EVEX instructions)segment_prefix: Segment override orRegister::None
sourcepub const fn with_index_scale_displ_size_bcst_seg(
index: Register,
scale: u32,
displacement: i64,
displ_size: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
pub const fn with_index_scale_displ_size_bcst_seg(
index: Register,
scale: u32,
displacement: i64,
displ_size: u32,
is_broadcast: bool,
segment_prefix: Register
) -> Self
Constructor
Arguments
index: Index register orRegister::Nonescale: Index register scale (1, 2, 4, or 8)displacement: Memory displacementdispl_size: 0 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in ai8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)is_broadcast:trueif it’s broadcast memory (EVEX instructions)segment_prefix: Segment override orRegister::None
sourcepub const fn with_base_displ_bcst_seg(
base: Register,
displacement: i64,
is_broadcast: bool,
segment_prefix: Register
) -> Self
pub const fn with_base_displ_bcst_seg(
base: Register,
displacement: i64,
is_broadcast: bool,
segment_prefix: Register
) -> Self
Constructor
Arguments
base: Base register orRegister::Nonedisplacement: Memory displacementis_broadcast:trueif it’s broadcast memory (EVEX instructions)segment_prefix: Segment override orRegister::None
sourcepub const fn with_base_index_scale_displ_size(
base: Register,
index: Register,
scale: u32,
displacement: i64,
displ_size: u32
) -> Self
pub const fn with_base_index_scale_displ_size(
base: Register,
index: Register,
scale: u32,
displacement: i64,
displ_size: u32
) -> Self
Constructor
Arguments
base: Base register orRegister::Noneindex: Index register orRegister::Nonescale: Index register scale (1, 2, 4, or 8)displacement: Memory displacementdispl_size: 0 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in ai8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)
sourcepub const fn with_base_index_scale(
base: Register,
index: Register,
scale: u32
) -> Self
pub const fn with_base_index_scale(
base: Register,
index: Register,
scale: u32
) -> Self
Constructor
Arguments
base: Base register orRegister::Noneindex: Index register orRegister::Nonescale: Index register scale (1, 2, 4, or 8)
sourcepub const fn with_base_index(base: Register, index: Register) -> Self
pub const fn with_base_index(base: Register, index: Register) -> Self
sourcepub const fn with_base_displ_size(
base: Register,
displacement: i64,
displ_size: u32
) -> Self
pub const fn with_base_displ_size(
base: Register,
displacement: i64,
displ_size: u32
) -> Self
Constructor
Arguments
base: Base register orRegister::Nonedisplacement: Memory displacementdispl_size: 0 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in ai8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)
sourcepub const fn with_index_scale_displ_size(
index: Register,
scale: u32,
displacement: i64,
displ_size: u32
) -> Self
pub const fn with_index_scale_displ_size(
index: Register,
scale: u32,
displacement: i64,
displ_size: u32
) -> Self
Constructor
Arguments
index: Index register orRegister::Nonescale: Index register scale (1, 2, 4, or 8)displacement: Memory displacementdispl_size: 0 (no displ), 1 (16/32/64-bit, but use 2/4/8 if it doesn’t fit in ai8), 2 (16-bit), 4 (32-bit) or 8 (64-bit)
sourcepub const fn with_base_displ(base: Register, displacement: i64) -> Self
pub const fn with_base_displ(base: Register, displacement: i64) -> Self
sourcepub const fn with_displ(displacement: u64, displ_size: u32) -> Self
pub const fn with_displ(displacement: u64, displ_size: u32) -> Self
Constructor
Arguments
displacement: Memory displacementdispl_size: 2 (16-bit), 4 (32-bit) or 8 (64-bit)
Trait Implementations
sourceimpl Clone for MemoryOperand
impl Clone for MemoryOperand
sourcefn clone(&self) -> MemoryOperand
fn clone(&self) -> MemoryOperand
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresourceimpl Debug for MemoryOperand
impl Debug for MemoryOperand
sourceimpl Default for MemoryOperand
impl Default for MemoryOperand
sourcefn default() -> MemoryOperand
fn default() -> MemoryOperand
Returns the “default value” for a type. Read more
sourceimpl Hash for MemoryOperand
impl Hash for MemoryOperand
sourceimpl PartialEq<MemoryOperand> for MemoryOperand
impl PartialEq<MemoryOperand> for MemoryOperand
sourcefn eq(&self, other: &MemoryOperand) -> bool
fn eq(&self, other: &MemoryOperand) -> bool
impl Copy for MemoryOperand
impl Eq for MemoryOperand
impl StructuralEq for MemoryOperand
impl StructuralPartialEq for MemoryOperand
Auto Trait Implementations
impl RefUnwindSafe for MemoryOperand
impl Send for MemoryOperand
impl Sync for MemoryOperand
impl Unpin for MemoryOperand
impl UnwindSafe for MemoryOperand
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
