210
Chapter 38. TIC54X Dependent Features
Subsyms may be defined using the
.asg
and
.eval
directives (Section 38.9 Directives, Section 38.9
Directives.
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' dereferenc
ing 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 Section 38.9 Directives.
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
.
38.6. Local Labels
Local labels may be defined in two ways:
$N, where N is a decimal number between 0 and 9
LABEL?, where LABEL is any legal symbol name.
Local labels thus defined may be redefined or automatically generated. The scope of a local label is
based on when it may be undefined or reset. This happens when one of the following situations is
encountered:
.newblock directive Section 38.9 Directives
The current section is changed (.sect, .text, or .data)
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved