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 TypeMethodDescriptionlongGet the base register identifier.longGet the memory displacement.longGet the index register identifier.intGet the scale used with the index register.Methods inherited from interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
formatMethods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandGeneric
getAlias, getOperandType, getOperandValue, getOperandValue, getPrefix, getSuffix, isImmediate, isRegisterMethods inherited from interface com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandRegisterBased
getRegisterNameMethods 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
-