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: Register
Segment override or Register::None
base: Register
Base register or Register::None
index: Register
Index register or Register::None
scale: u32
Index register scale (1, 2, 4, or 8)
displacement: i64
Memory displacement
displ_size: u32
0 (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: bool
true
if it’s broadcast memory (EVEX instructions)
Implementations§
source§impl 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::None
index
: Index register orRegister::None
scale
: 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
:true
if 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::None
index
: Index register orRegister::None
scale
: Index register scale (1, 2, 4, or 8)is_broadcast
:true
if 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::None
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
:true
if 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::None
scale
: 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
:true
if 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::None
displacement
: Memory displacementis_broadcast
:true
if 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::None
index
: Index register orRegister::None
scale
: 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::None
index
: Index register orRegister::None
scale
: 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::None
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_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::None
scale
: 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§
source§impl Clone for MemoryOperand
impl Clone for MemoryOperand
source§fn clone(&self) -> MemoryOperand
fn clone(&self) -> MemoryOperand
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for MemoryOperand
impl Debug for MemoryOperand
source§impl Default for MemoryOperand
impl Default for MemoryOperand
source§fn default() -> MemoryOperand
fn default() -> MemoryOperand
Returns the “default value” for a type. Read more
source§impl Hash for MemoryOperand
impl Hash for MemoryOperand
source§impl PartialEq for MemoryOperand
impl PartialEq for MemoryOperand
source§fn eq(&self, other: &MemoryOperand) -> bool
fn eq(&self, other: &MemoryOperand) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more