assemblydefinitioninline-code

Definition of an inline value


When browsing through the x86 Assembly Language Reference Manual, I came across this definition of an immediate operand:

Operands can be immediate (that is, constant expressions that evaluate to an inline value), [...]

If I got it correctly, an expression returns a value. Does a constant expression then return a constant value? Does inline value mean that it will be substituted by some other value after having undergone the process of assembly?


Solution

  • It just means that the expression must be a value that can be calculated during assembly. Examples of constant expressions include:

    5
    5+5
    5*5
    MyConstant  (where this constant is defined somewhere else)
    MyConstant*4
    

    Values for all above can be determined by the assembler and substituted with the value of the expression.

    In contrast, non-constant expressions have values that cannot be determined during assembly. Examples include:

    ah     (a register)
    ah*al  (expression containing registers)
    [0x800] (a memory location)