public interface

IInstructionOperandCMA

implements IInstructionOperandGeneric
com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandCMA

Class Overview

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).

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandGeneric
Public Methods
abstract long getMemoryBaseRegister()
Get the base register identifier.
abstract long getMemoryDisplacement()
Get the memory displacement.
abstract long getMemoryIndexRegister()
Get the index register identifier.
abstract int getMemoryScale()
Get the scale used with the index register.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
From interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandGeneric
From interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandRegisterBased
From interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandSized

Public Methods

public abstract long getMemoryBaseRegister ()

Get the base register identifier.

Returns
  • the identifier, -1 should be used to denote no register

public abstract long getMemoryDisplacement ()

Get the memory displacement.

Returns
  • the signed displacement, 0 if none

public abstract long getMemoryIndexRegister ()

Get the index register identifier.

Returns
  • the identifier, -1 should be used to denote no register

public abstract int getMemoryScale ()

Get the scale used with the index register.

Returns
  • the scale, 0 if there is no scaled-index