Symbols

A symbol represents a value, which can be a variable, address label,
or an operand to an assembly instruction or directive.


Symbol names

Symbol names are combinations of letters (both uppercase and
lowercase), digits, and special characters. Symbol names can't start
with a digit. TASM treats symbols as either case sensitive or case
insensitive. The command line switches /ml, /mu, and /mx control the
case sensitivity of symbols.

Symbol names can be up to 255 characters in length. By default,
symbol names are significant up to 32 characters. You can use the /mv
command line switch to change the number of characters of
significance in symbols.

The underscore (_), question mark (?), dollar sign ($), and at-sign
(@) can all be used as part of a symbol name. In MASM mode only, you
can use a dot (.) as the first character of a symbol name. However,
since it's easy to confuse a dot at the start of a symbol with the
dot operator (which performs a structure member operation), it's
better not to use it in symbol names.


Symbol types

Each symbol has a type that describes the characteristics and
information associated with it. The way you define a symbol determines
its type. For example, you can declare a symbol to represent a numeric
expression, a text string, a procedure name, or a data variable. The
following table lists the types of symbols that Turbo Assembler v4.0
supports.


Symbol type Description
───────────────────────────────────────────────────────────────────
address An address
Data subtypes are:
UNKNOWN,BYTE,WORD,DWORD,PWORD or FWORD,QWORD,
TBYTE, and an address of a named structure
or table
Code subtypes are:
SHORT, NEAR, and FAR
text_macro A text string
alias An equivalent symbol
numerical_expr The value of a numerical expression
multiline_macro Multiple text lines with dummy arguments
struc/union A structure or union data type
table A data table type
struc_member/
table_member A structure or table member
record A record data type
record_field A record field
enum An enumerated data type
segment A segment
group A group
type A named type (cf. TYPEDEF directive)
proceduretype A procedure description type (cf. PROCTYPE directive)