# Interface: com.pnfsoftware.jeb.core.units.code.asm.processor.IInstructionOperandCMA

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](IInstructionOperandGeneric) objects, eg for \(scaled\-index=None, disp=0\) or \(base=None, scaled\-index=None\).

## Method: getMemoryBaseRegister
- return type: `long`

Description: Get the base register identifier.
return: the identifier, \-1 should be used to denote no register

## Method: getMemoryDisplacement
- return type: `long`

Description: Get the memory displacement.
return: the signed displacement, 0 if none

## Method: getMemoryIndexRegister
- return type: `long`

Description: Get the index register identifier.
return: the identifier, \-1 should be used to denote no register

## Method: getMemoryScale
- return type: `int`

Description: Get the scale used with the index register.
return: the scale, 0 if there is no scaled\-index

