A symbol in the operand field must be either a user-defined
numeric symbol, a label, or a register name.
User-defined numeric symbols and labels can be either local
(internal) symbols or global (external) symbols. Whether numeric
symbols and labels are local or global depends on their use in
the source program.
You can reference a local numeric symbol or label only in the
module in which it is defined. If local numeric symbols or labels
with the same names are defined in different modules, the symbols
and labels are completely independent. The definition of a global
numeric symbol or label, however, can be referenced from any
module in the program.
MACRO-64 treats all user-defined numeric symbols and labels as
local unless you explicitly declare them to be global by doing
one of the following:
o Use the double colon (::) in defining a label.
o Use the double equal sign (==) in a direct assignment
statement.
o Use the .WEAK directive.
You can only use user-defined lexical string symbols with the
lexical string operators. You can define a macro using the same
name as a previously defined local numeric symbol, global numeric
symbol, or a lexical string symbol. However, you cannot define a
lexical string symbol and a numeric symbol using the same name.
In addition, you cannot use the same name for both a local and
global numeric symbol. You cannot use the same symbol name for
both a numeric symbol (local or global) and a label (local or
global).