TIC54X 002dSubsyms




TIC54X-Subsyms - Using as















Next: TIC54X-Locals,
Previous: TIC54X-Constants,
Up: TIC54X-Dependent



9.31.5 String Substitution

A subset of allowable symbols (which we'll call subsyms) may be assigned
arbitrary string values. This is roughly equivalent to C preprocessor
#define macros. When as encounters one of these
symbols, the symbol is replaced in the input stream by its string value.
Subsym names must begin with a letter.

Subsyms may be defined using the .asg and .eval directives
(See .asg,
See .eval.

Expansion is recursive until a previously encountered symbol is seen, at
which point substitution stops.

In this example, x is replaced with SYM2; SYM2 is replaced with SYM1, and SYM1
is replaced with x. At this point, x has already been encountered
and the substitution stops.

.asg "x",SYM1
.asg "SYM1",SYM2
.asg "SYM2",x
add x,a ; final code assembled is "add x, a"

Macro parameters are converted to subsyms; a side effect of this is the normal
as '\ARG' dereferencing syntax is unnecessary. Subsyms
defined within a macro will have global scope, unless the .var
directive is used to identify the subsym as a local macro variable
see .var.

Substitution may be forced in situations where replacement might be
ambiguous by placing colons on either side of the subsym. The following
code:

.eval "10",x
LAB:X: add #x, a

When assembled becomes:

LAB10 add #10, a

Smaller parts of the string assigned to a subsym may be accessed with
the following syntax:


:symbol(char_index):Evaluates to a single-character string, the character at char_index.
:symbol(start,length):Evaluates to a substring of symbol beginning at start with
length length.






Wyszukiwarka

Podobne podstrony:
TIC54X2dExt
TIC54X2dEnv
TIC54X2dDirectives
TIC54X2dMacros
TIC54X2dLocals
TIC54X2dBuiltins
TIC54X2dDependent
TIC54X2dMMRegs
TIC54X2dConstants
TIC54X2dBlock
TIC54X2dOpts

więcej podobnych podstron