Interface IInstructionOperandCMA
- All Superinterfaces:
IInstructionOperand
,IInstructionOperandGeneric
,IInstructionOperandRegisterBased
,IInstructionOperandSized
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).
-
Field Summary
Fields inherited from interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandGeneric
TYPE_ADDR, TYPE_ALIAS, TYPE_CMA, TYPE_IMM, TYPE_LIST, TYPE_MEMIMM, TYPE_MEMREG, TYPE_REG, TYPE_RELADDR, TYPE_SIMM, TYPE_USER_1
-
Method Summary
Modifier and TypeMethodDescriptionlong
Get the base register identifier.long
Get the memory displacement.long
Get the index register identifier.int
Get the scale used with the index register.Methods inherited from interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
format
Methods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandGeneric
getAlias, getOperandType, getOperandValue, getOperandValue, getPrefix, getSuffix, isImmediate, isRegister
Methods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandRegisterBased
getRegisterName
Methods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandSized
getOperandBitsize
-
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
-