A label is a user-defined symbol that identifies a location in the program. The symbol is assigned a value equal to the location counter where the label occurs. The following rules apply when coding source statements with labels: o If a statement contains a label, the label must be in the first field on the line. o The user-defined symbol name can be up to 31 characters long and can contain any alphanumeric character, as well as the underscore (_), dollar sign ($), and period (.) characters. o If a label extends past column 7, Digital recommends you place it on a line by itself so that the following operator field can start in column 9 of the next line. o A label is terminated by a colon (:) or a double colon (::). In the following source statement, EXP: is the label field: EXP: .BLKL 50 ; Table stores expected values There are three types of labels: o Global labels-Can be referenced by other object modules and are defined using a double colon (::). o Local labels-Can be referenced only within the current module and are defined using a single colon (:). o Temporary labels-Can be referenced only within the bounds of either two local labels, two global labels, two psects (program sections), or within the bounds of a temporary label scope, as defined by .ENABLE LOCAL_BLOCK and .DISABLE LOCAL_BLOCK. Temporary labels are defined using one to five digits followed by a dollar sign and a single colon ($:). The following example shows how these labels appear in use: EXP: .BLKL 50 ; EXP is a local label used to ; identify a 50-word block of storage DATA:: .BLKW 25 ; DATA is a global label used to ; identify a 25-word block of storage 10$: .BLKW 5 ; 10$ is a temporary label used to ; identify a five word block of ; storage.