Previous: S12Z Addressing Modes, Up: S12Z Syntax [Contents][Index]
Without a register prefix (see S12Z Options), S12Z assembler code is expected in the traditional format like this:
lea s, (-2,s) st d2, (0,s) ld x, symbol tfr d2, d6 cmp d6, #1532
However, if as
is started with (for example) ‘-mreg-prefix=%’
then all register names must be prefixed with ‘%’ as follows:
lea %s, (-2,%s) st %d2, (0,%s) ld %x, symbol tfr %d2, %d6 cmp %d6, #1532
The register prefix feature is intended to be used by compilers to avoid ambiguity between symbols and register names. Consider the following assembler instruction:
st d0, d1
The destination operand of this instruction could either refer to the register
‘D1’, or it could refer to the symbol named “d1”.
If the latter is intended then as
must be invoked with
‘-mreg-prefix=pfx’ and the code written as
st pfxd0, d1
where pfx is the chosen register prefix. For this reason, compiler back-ends should choose a register prefix which cannot be confused with a symbol name.