9.22 Labels

------------

Jump labels are used to indicate the starting points of areas of code

used by builtin Assembler commands and by 'goto'/'GOTO'.

There are two types of jump labels: global and local. Global labels, as

their name implies, are visible from any place in a program. Local labels

are visible only within their function block and are not defined outside of

it.

Labels are defined by their identifier followed by a colon. If the

identifier contains at least one lower-case letter, this is a global,

otherwise a local jump label.

Global jump labels cannot be used inside dynamic functions, where only

local labels can be used. Be sure to remember this, since because of the

use of such things as macros, a dynamic function can be present in several

places in the code, which means that the label corresponds to more than one

address.

Labels outside of functions are in practice found in the program data

field. If the data and the code are in the same segment (as is typical of

C-- programs) then labels outside of functions are a simple and efficient

way of obtaining the distances between parts of a program. Names for labels

outside of functions should be unique identifiers containing upper-case or

lower-case letters, or a mixture of the two.