MemoryOperand

class iced_x86.MemoryOperand(base=0, index=0, scale=1, displ=0, displ_size=0, is_broadcast=False, seg=0)

Memory operand passed to one of Instruction’s create*() constructor methods

See also MemoryOperand.ctor_u64() if you need to pass in a u64 displ argument value.

Parameters:
  • base (Register) – (default = Register.NONE) Base register or Register.NONE

  • index (Register) – (default = Register.NONE) Index register or Register.NONE

  • scale (int) – (default = 1) Index register scale (1, 2, 4, or 8)

  • displ (int) – (i64) (default = 0) Memory displacement

  • displ_size (int) – (default = 0) 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) – (default = False) True if it’s broadcast memory (EVEX instructions)

  • seg (Register) – (default = Register.NONE) Segment override or Register.NONE

copy()

Returns a copy of this instance.

Returns:

A copy of this instance

Return type:

MemoryOperand

static ctor_u64()

Memory operand passed to one of Instruction’s create*() constructor methods

The only difference between this method and the constructor is that this method takes a u64 displ argument instead of an i64.

Parameters:
  • base (Register) – (default = Register.NONE) Base register or Register.NONE

  • index (Register) – (default = Register.NONE) Index register or Register.NONE

  • scale (int) – (default = 1) Index register scale (1, 2, 4, or 8)

  • displ (int) – (u64) (default = 0) Memory displacement

  • displ_size (int) – (default = 0) 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) – (default = False) True if it’s broadcast memory (EVEX instructions)

  • seg (Register) – (default = Register.NONE) Segment override or Register.NONE

Returns:

A new instance

Return type:

MemoryOperand