A label is composed of a string of letters, numbers and
underscores and must begin with an underscore, an “at”
symbol (@) or a letter. An optional colon may follow a label.
Standard assembly language convention uses labels beginning
with an “@” for labels local to a procedure or function.
Labels, like other types of identifiers, are not case-
Labels may optionally precede any instruction and some
directives. A number of other directives (such as EQU, SET,
PROC)require a label. Lines with no code may contain a label,
but in this case it must be followed by a colon to differentiate
it from an opword.
Local & global labels
All labels declared outside of modules (procedures or functions)
are considered global. A label within a module is local if it
begins with an “@” and global otherwise. Local labels can
be accessed only within the module. As with most higher-level
functional languages, local label names may be declared more
than once in a project, but not within a module.
Any declared label may be used within PC-relative addressing
modes for instructions within the appropriate scope.