|
- S-type address constants can be used in literals.
- Location counter references (*) can be used in address constants.
- When a literal address constant contains *, each use of that literal
is assigned a separate location in the literal pool.
- When a literal address constant contains *, the value used for
* is the address of the (single) instruction in which the literal
is used.
When not in a literal, * in an address
constant refers to the first byte of the constant.
- When a literal address constant containing * also has a duplication
factor, the value of * does not change for each duplication, but remains
equal to the address if the first byte of the instruction in which
the literal was used.
When not in a literal,
if an address constant containing * is duplicated, the value of *
is updated for each duplication to refer to the address of that duplication.
- When an S-type address constant is used in a literal, regardless
of whether it contains *, the base register that is used to compute
the base and displacement that are parts of the S-type address constant
is determined by the USING statements that are in effect at the place
that the literal is assembled, not the USING statements in effect
at the place where the literal is referenced in an instruction. There
are two different base-displacement calculations: one in the instruction
referring to the S-type address constant, and one in the S-type address
constant to determine how to address the object of the constant.
|