fcml  1.2.2
Static Public Member Functions | List of all members
fcml::OB Class Reference

Operand builder. More...

#include <fcml_common.hpp>

Static Public Member Functions

static Operand undef ()
 Factory method which builds an empty operand. More...
 
static Operand imm (const Integer &imm)
 Factory method which builds an immediate operand. More...
 
static Operand far_ptr (fcml_uint16_t seg, fcml_int16_t addr)
 Factory method which builds a far pointer operand. More...
 
static Operand far_ptr (fcml_uint16_t seg, fcml_int32_t addr)
 Factory method which builds a far pointer operand. More...
 
static Operand far_ptr (const FarPointer &pointer)
 Factory method which builds a far pointer operand. More...
 
static Operand addr (const Address &address)
 Factory method which builds an address operand. More...
 
static Operand off (const Integer &offset, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which builds an address operand. More...
 
static Operand offb (const Integer &offset)
 Factory method which builds an offset based address operand with byte size operator. More...
 
static Operand offw (const Integer &offset)
 Factory method which builds an offset based address operand with word size operator. More...
 
static Operand offd (const Integer &offset)
 Factory method which builds an offset based address operand with double word size operator. More...
 
static Operand offq (const Integer &offset)
 Factory method which builds an offset based address operand with quadro word size operator. More...
 
static Operand addr (const EffectiveAddress &effectiveAddress, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates address type operand for given effective address and optional size operator. More...
 
static Operand addrb (const EffectiveAddress &effectiveAddress)
 Factory method which creates address type operand for given effective address and byte size operator. More...
 
static Operand addrw (const EffectiveAddress &effectiveAddress)
 Factory method which creates address type operand for given effective address and word size operator. More...
 
static Operand addrd (const EffectiveAddress &effectiveAddress)
 Factory method which creates address type operand for given effective address and double word size operator. More...
 
static Operand addrq (const EffectiveAddress &effectiveAddress)
 Factory method which creates address type operand for given effective address and quadro word size operator. More...
 
static Operand addr (const EffectiveAddress &effectiveAddress, const SegmentSelector &segmentSelector, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates address type operand for given segment selector, effective address and optional size operator. More...
 
static Operand addrb (const EffectiveAddress &effectiveAddress, const SegmentSelector &segmentSelector)
 Factory method which creates address type operand for given effective address and byte size operator. More...
 
static Operand addrw (const EffectiveAddress &effectiveAddress, const SegmentSelector &segmentSelector)
 Factory method which creates address type operand for given effective address and word size operator. More...
 
static Operand addrd (const EffectiveAddress &effectiveAddress, const SegmentSelector &segmentSelector)
 Factory method which creates address type operand for given effective address and double word size operator. More...
 
static Operand addrq (const EffectiveAddress &effectiveAddress, const SegmentSelector &segmentSelector)
 Factory method which creates address type operand for given effective address and quadro word size operator. More...
 
static Operand reg (const Register &reg)
 Factory method which creates an register based operator for given register. More...
 
static Operand reg (fcml_uint8_t reg, fcml_usize size, Register::RegisterType type=Register::REG_GPR, fcml_bool x64_exp=FCML_FALSE)
 Factory method which creates an register based operator for given parameters. More...
 
static Operand eff (const Integer &displacement, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for a displacement and optional size operator. More...
 
static Operand effb (const Integer &displacement)
 Factory method which creates an effective address based operator for a displacement and byte size operator. More...
 
static Operand effw (const Integer &displacement)
 Factory method which creates an effective address based operator for a displacement and word size operator. More...
 
static Operand effd (const Integer &displacement)
 Factory method which creates an effective address based operator for a displacement and double word size operator. More...
 
static Operand effq (const Integer &displacement)
 Factory method which creates an effective address based operator for a displacement and quadro byte size operator. More...
 
static Operand eff (const Register &base, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for a base register and optional size operator. More...
 
static Operand effb (const Register &base)
 Factory method which creates an effective address based operator for a base register and byte size operator. More...
 
static Operand effw (const Register &base)
 Factory method which creates an effective address based operator for a base register and word size operator. More...
 
static Operand effd (const Register &base)
 Factory method which creates an effective address based operator for a base register and double word size operator. More...
 
static Operand effq (const Register &base)
 Factory method which creates an effective address based operator for a base register and quadro word size operator. More...
 
static Operand eff (const Register &base, const Integer &displacement, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for a base register, displacement and optional size operator. More...
 
static Operand effb (const Register &base, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, displacement and byte size operator. More...
 
static Operand effw (const Register &base, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, displacement and word size operator. More...
 
static Operand effd (const Register &base, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, displacement and double word size operator. More...
 
static Operand effq (const Register &base, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, displacement and quadro word size operator. More...
 
static Operand eff (const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and optional size operator. More...
 
static Operand effb (const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and byte size operator. More...
 
static Operand effw (const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and word size operator. More...
 
static Operand effd (const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and double word size operator. More...
 
static Operand effq (const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and quadro word size operator. More...
 
static Operand eff (const Register &base, const Register &index, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for a base register, index register and optional size operator. More...
 
static Operand effb (const Register &base, const Register &index)
 Factory method which creates an effective address based operator for a base register, index register and byte size operator. More...
 
static Operand effw (const Register &base, const Register &index)
 Factory method which creates an effective address based operator for a base register, index register and word size operator. More...
 
static Operand effd (const Register &base, const Register &index)
 Factory method which creates an effective address based operator for a base register, index register and double word size operator. More...
 
static Operand effq (const Register &base, const Register &index)
 Factory method which creates an effective address based operator for a base register, index register and quadro word size operator. More...
 
static Operand eff (const Register &base, const Register &index, fcml_uint8_t scaleFactor, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and optional size operator. More...
 
static Operand effb (const Register &base, const Register &index, fcml_uint8_t scaleFactor)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and byte size operator. More...
 
static Operand effw (const Register &base, const Register &index, fcml_uint8_t scaleFactor)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and word size operator. More...
 
static Operand effd (const Register &base, const Register &index, fcml_uint8_t scaleFactor)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and double word size operator. More...
 
static Operand effq (const Register &base, const Register &index, fcml_uint8_t scaleFactor)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and quadro word size operator. More...
 
static Operand eff (const Register &base, const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement, fcml_usize sizeOperator=FCML_DS_UNDEF)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and optional size operator. More...
 
static Operand effb (const Register &base, const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and byte size operator. More...
 
static Operand effw (const Register &base, const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and word size operator. More...
 
static Operand effd (const Register &base, const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and double word size operator. More...
 
static Operand effq (const Register &base, const Register &index, fcml_uint8_t scaleFactor, const Integer &displacement)
 Factory method which creates an effective address based operator for a base register, index register, scale factor and quardo word size operator. More...
 

Detailed Description

Operand builder.

A builder that exposes various factory methods that can be used to create several types of the instruction operands. These methods are very simple so no API documentation has been provided for now. Just take a look at the source code.

Since
1.1.0

Member Function Documentation

◆ addr() [1/3]

static Operand fcml::OB::addr ( const Address address)
inlinestatic

Factory method which builds an address operand.

Parameters
addressAn address instance.
Returns
The address operand.
Since
1.1.0

◆ addr() [2/3]

static Operand fcml::OB::addr ( const EffectiveAddress effectiveAddress,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates address type operand for given effective address and optional size operator.

Parameters
effectiveAddressThe effective address.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ addr() [3/3]

static Operand fcml::OB::addr ( const EffectiveAddress effectiveAddress,
const SegmentSelector segmentSelector,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates address type operand for given segment selector, effective address and optional size operator.

Parameters
effectiveAddressThe effective address.
segmentSelectorThe segment selector.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ addrb() [1/2]

static Operand fcml::OB::addrb ( const EffectiveAddress effectiveAddress)
inlinestatic

Factory method which creates address type operand for given effective address and byte size operator.

Parameters
effectiveAddressThe effective address.
Returns
The created operator.
Since
1.1.0

◆ addrb() [2/2]

static Operand fcml::OB::addrb ( const EffectiveAddress effectiveAddress,
const SegmentSelector segmentSelector 
)
inlinestatic

Factory method which creates address type operand for given effective address and byte size operator.

Parameters
effectiveAddressThe effective address.
segmentSelectorThe segment selector.
Returns
The created operator.
Since
1.1.0

◆ addrd() [1/2]

static Operand fcml::OB::addrd ( const EffectiveAddress effectiveAddress)
inlinestatic

Factory method which creates address type operand for given effective address and double word size operator.

Parameters
effectiveAddressThe effective address.
Returns
The created operator.
Since
1.1.0

◆ addrd() [2/2]

static Operand fcml::OB::addrd ( const EffectiveAddress effectiveAddress,
const SegmentSelector segmentSelector 
)
inlinestatic

Factory method which creates address type operand for given effective address and double word size operator.

Parameters
effectiveAddressThe effective address.
segmentSelectorThe segment selector.
Returns
The created operator.
Since
1.1.0

◆ addrq() [1/2]

static Operand fcml::OB::addrq ( const EffectiveAddress effectiveAddress)
inlinestatic

Factory method which creates address type operand for given effective address and quadro word size operator.

Parameters
effectiveAddressThe effective address.
Returns
The created operator.
Since
1.1.0

◆ addrq() [2/2]

static Operand fcml::OB::addrq ( const EffectiveAddress effectiveAddress,
const SegmentSelector segmentSelector 
)
inlinestatic

Factory method which creates address type operand for given effective address and quadro word size operator.

Parameters
effectiveAddressThe effective address.
segmentSelectorThe segment selector.
Returns
The created operator.
Since
1.1.0

◆ addrw() [1/2]

static Operand fcml::OB::addrw ( const EffectiveAddress effectiveAddress)
inlinestatic

Factory method which creates address type operand for given effective address and word size operator.

Parameters
effectiveAddressThe effective address.
Returns
The created operator.
Since
1.1.0

◆ addrw() [2/2]

static Operand fcml::OB::addrw ( const EffectiveAddress effectiveAddress,
const SegmentSelector segmentSelector 
)
inlinestatic

Factory method which creates address type operand for given effective address and word size operator.

Parameters
effectiveAddressThe effective address.
segmentSelectorThe segment selector.
Returns
The created operator.
Since
1.1.0

◆ eff() [1/7]

static Operand fcml::OB::eff ( const Integer displacement,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for a displacement and optional size operator.

Parameters
displacementThe displacement value.
sizeOperatorThe size operator.
Returns
The created operator.
Since
1.1.0

◆ eff() [2/7]

static Operand fcml::OB::eff ( const Register base,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for a base register and optional size operator.

Parameters
baseThe base register.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ eff() [3/7]

static Operand fcml::OB::eff ( const Register base,
const Integer displacement,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, displacement and optional size operator.

Parameters
baseThe base register.
displacementThe displacement value.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ eff() [4/7]

static Operand fcml::OB::eff ( const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and optional size operator.

Parameters
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ eff() [5/7]

static Operand fcml::OB::eff ( const Register base,
const Register index,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register and optional size operator.

Parameters
baseThe base register.
indexThe index register.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ eff() [6/7]

static Operand fcml::OB::eff ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and optional size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ eff() [7/7]

static Operand fcml::OB::eff ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and optional size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
sizeOperatorThe optional size operator.
Returns
The created operator.
Since
1.1.0

◆ effb() [1/7]

static Operand fcml::OB::effb ( const Integer displacement)
inlinestatic

Factory method which creates an effective address based operator for a displacement and byte size operator.

Parameters
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effb() [2/7]

static Operand fcml::OB::effb ( const Register base)
inlinestatic

Factory method which creates an effective address based operator for a base register and byte size operator.

Parameters
baseThe base register.
Returns
The created operator.
Since
1.1.0

◆ effb() [3/7]

static Operand fcml::OB::effb ( const Register base,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, displacement and byte size operator.

Parameters
baseThe base register.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effb() [4/7]

static Operand fcml::OB::effb ( const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and byte size operator.

Parameters
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effb() [5/7]

static Operand fcml::OB::effb ( const Register base,
const Register index 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register and byte size operator.

Parameters
baseThe base register.
indexThe index register.
Returns
The created operator.
Since
1.1.0

◆ effb() [6/7]

static Operand fcml::OB::effb ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and byte size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
Returns
The created operator.
Since
1.1.0

◆ effb() [7/7]

static Operand fcml::OB::effb ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and byte size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effd() [1/7]

static Operand fcml::OB::effd ( const Integer displacement)
inlinestatic

Factory method which creates an effective address based operator for a displacement and double word size operator.

Parameters
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effd() [2/7]

static Operand fcml::OB::effd ( const Register base)
inlinestatic

Factory method which creates an effective address based operator for a base register and double word size operator.

Parameters
baseThe base register.
Returns
The created operator.
Since
1.1.0

◆ effd() [3/7]

static Operand fcml::OB::effd ( const Register base,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, displacement and double word size operator.

Parameters
baseThe base register.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effd() [4/7]

static Operand fcml::OB::effd ( const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and double word size operator.

Parameters
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effd() [5/7]

static Operand fcml::OB::effd ( const Register base,
const Register index 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register and double word size operator.

Parameters
baseThe base register.
indexThe index register.
Returns
The created operator.
Since
1.1.0

◆ effd() [6/7]

static Operand fcml::OB::effd ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and double word size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
Returns
The created operator.
Since
1.1.0

◆ effd() [7/7]

static Operand fcml::OB::effd ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and double word size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effq() [1/7]

static Operand fcml::OB::effq ( const Integer displacement)
inlinestatic

Factory method which creates an effective address based operator for a displacement and quadro byte size operator.

Parameters
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effq() [2/7]

static Operand fcml::OB::effq ( const Register base)
inlinestatic

Factory method which creates an effective address based operator for a base register and quadro word size operator.

Parameters
baseThe base register.
Returns
The created operator.
Since
1.1.0

◆ effq() [3/7]

static Operand fcml::OB::effq ( const Register base,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, displacement and quadro word size operator.

Parameters
baseThe base register.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effq() [4/7]

static Operand fcml::OB::effq ( const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and quadro word size operator.

Parameters
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effq() [5/7]

static Operand fcml::OB::effq ( const Register base,
const Register index 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register and quadro word size operator.

Parameters
baseThe base register.
indexThe index register.
Returns
The created operator.
Since
1.1.0

◆ effq() [6/7]

static Operand fcml::OB::effq ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and quadro word size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
Returns
The created operator.
Since
1.1.0

◆ effq() [7/7]

static Operand fcml::OB::effq ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and quardo word size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effw() [1/7]

static Operand fcml::OB::effw ( const Integer displacement)
inlinestatic

Factory method which creates an effective address based operator for a displacement and word size operator.

Parameters
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effw() [2/7]

static Operand fcml::OB::effw ( const Register base)
inlinestatic

Factory method which creates an effective address based operator for a base register and word size operator.

Parameters
baseThe base register.
Returns
The created operator.
Since
1.1.0

◆ effw() [3/7]

static Operand fcml::OB::effw ( const Register base,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, displacement and word size operator.

Parameters
baseThe base register.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effw() [4/7]

static Operand fcml::OB::effw ( const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for an index register, scaleFactor, displacement and word size operator.

Parameters
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ effw() [5/7]

static Operand fcml::OB::effw ( const Register base,
const Register index 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register and word size operator.

Parameters
baseThe base register.
indexThe index register.
Returns
The created operator.
Since
1.1.0

◆ effw() [6/7]

static Operand fcml::OB::effw ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and word size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
Returns
The created operator.
Since
1.1.0

◆ effw() [7/7]

static Operand fcml::OB::effw ( const Register base,
const Register index,
fcml_uint8_t  scaleFactor,
const Integer displacement 
)
inlinestatic

Factory method which creates an effective address based operator for a base register, index register, scale factor and word size operator.

Parameters
baseThe base register.
indexThe index register.
scaleFactorThe scale factor.
displacementThe displacement value.
Returns
The created operator.
Since
1.1.0

◆ far_ptr() [1/3]

static Operand fcml::OB::far_ptr ( fcml_uint16_t  seg,
fcml_int16_t  addr 
)
inlinestatic

Factory method which builds a far pointer operand.

Parameters
segA segment selector.
addrAn 16-bit offset value.
Returns
The far pointer operand.
Since
1.1.0

◆ far_ptr() [2/3]

static Operand fcml::OB::far_ptr ( fcml_uint16_t  seg,
fcml_int32_t  addr 
)
inlinestatic

Factory method which builds a far pointer operand.

Parameters
segA segment selector.
addrAn 32-bit offset value.
Returns
The far pointer operand.
Since
1.1.0

◆ far_ptr() [3/3]

static Operand fcml::OB::far_ptr ( const FarPointer pointer)
inlinestatic

Factory method which builds a far pointer operand.

Parameters
pointerA far pointer instance.
Returns
The far pointer operand.
Since
1.1.0

◆ imm()

static Operand fcml::OB::imm ( const Integer imm)
inlinestatic

Factory method which builds an immediate operand.

Returns
The immediate operand.
Since
1.1.0

◆ off()

static Operand fcml::OB::off ( const Integer offset,
fcml_usize  sizeOperator = FCML_DS_UNDEF 
)
inlinestatic

Factory method which builds an address operand.

Parameters
offsetAn offset instance.
sizeOperatorAn optional size operator.
Returns
The address operand.
Since
1.1.0

◆ offb()

static Operand fcml::OB::offb ( const Integer offset)
inlinestatic

Factory method which builds an offset based address operand with byte size operator.

Parameters
offsetAn offset instance.
Returns
The address operand.
Since
1.1.0

◆ offd()

static Operand fcml::OB::offd ( const Integer offset)
inlinestatic

Factory method which builds an offset based address operand with double word size operator.

Parameters
offsetAn offset instance.
Returns
The address operand.
Since
1.1.0

◆ offq()

static Operand fcml::OB::offq ( const Integer offset)
inlinestatic

Factory method which builds an offset based address operand with quadro word size operator.

Parameters
offsetAn offset instance.
Returns
The address operand.
Since
1.1.0

◆ offw()

static Operand fcml::OB::offw ( const Integer offset)
inlinestatic

Factory method which builds an offset based address operand with word size operator.

Parameters
offsetAn offset instance.
Returns
The address operand.
Since
1.1.0

◆ reg() [1/2]

static Operand fcml::OB::reg ( const Register reg)
inlinestatic

Factory method which creates an register based operator for given register.

Parameters
regThe register.
Returns
The created operator.
Since
1.1.0

◆ reg() [2/2]

static Operand fcml::OB::reg ( fcml_uint8_t  reg,
fcml_usize  size,
Register::RegisterType  type = Register::REG_GPR,
fcml_bool  x64_exp = FCML_FALSE 
)
inlinestatic

Factory method which creates an register based operator for given parameters.

Parameters
regThe FCML register number.
sizeThe register size.
typeThe register type.
x64_expSee manual for more information.
Returns
The created operator.
Since
1.1.0

◆ undef()

static Operand fcml::OB::undef ( )
inlinestatic

Factory method which builds an empty operand.

Returns
The empty operand.
Since
1.1.0

The documentation for this class was generated from the following file: