Assembler Directives and Pseudo-Operations

.SPACE Directive

TSPECIFIC Indicates that this space contains thread local storage data.

UNLOADABLE Specifies that the space resides on disk and is not loadable into main memory. Debugger data is a typical example of an unloadable space.

Discussion

The first time the Assembler encounters a .SPACE directive with a new name, it uses that name to declare a new space. As this is the defining occurrence of that space, additional keywords can describe attributes for that space.

If the Assembler encounters subsequent .SPACE directives with that name, it continues that space. In this case, where the program is re-entering a previously defined space, the .SPACE directive can only contain the space name; other keywords to describe the space are illegal.

A space can contain from one to four discrete quadrants (See the QUAD parameter of the .SUBSPA directive.) When you divide a space into multiple quadrants, you must define all the subspaces within each quadrant as a group. If subspaces for a quadrant are defined individually, program operation is unpredictable. The Assembler, however, does not check for this condition.

Example

This example shows some of the standard “space” definitions in a typical assembly language program.

.SPACE $TEXT$, SPNUM=0,SORT=8

.SPACE $PRIVATE$, SPNUM=1,PRIVATE,SORT=16

.SPACE $myspace$, SPNUM=7,UNLOADABLE

.SPACE $THREAD_SPECIFIC$, PRIVATE, TSPECIFIC, SORT=32

Chapter 4

107