Interface IInstructionOperandCMA

All Superinterfaces:
IInstructionOperand, IInstructionOperandGeneric, IInstructionOperandRegisterBased, IInstructionOperandSized

public interface IInstructionOperandCMA extends IInstructionOperandGeneric
Operands performing Complex Memory Access (CMA). Such operands access memory via a combination of registers and displacement values. Specifically, memory references can be made using a base register, a scaled-index, and a displacement: [baseRegister + scale*indexRegister + displacement]

Note that simple uses of this operand could also be represented using simpler IInstructionOperandGeneric objects, eg for (scaled-index=None, disp=0) or (base=None, scaled-index=None).

  • Method Details

    • getMemoryBaseRegister

      long getMemoryBaseRegister()
      Get the base register identifier.
      Returns:
      the identifier, -1 should be used to denote no register
    • getMemoryScale

      int getMemoryScale()
      Get the scale used with the index register.
      Returns:
      the scale, 0 if there is no scaled-index
    • getMemoryIndexRegister

      long getMemoryIndexRegister()
      Get the index register identifier.
      Returns:
      the identifier, -1 should be used to denote no register
    • getMemoryDisplacement

      long getMemoryDisplacement()
      Get the memory displacement.
      Returns:
      the signed displacement, 0 if none