22.02.2015 Views

HLASM Language Reference

HLASM Language Reference

HLASM Language Reference

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5. Load the address of the allocated area into a register.<br />

6. Add to the address in the register the offset into the allocated area of the<br />

applicable external dummy section. The linker inserts this offset into the area<br />

reserved by the associated Q-type address constant.<br />

7. Establish the addressability of the external dummy section in combination with<br />

the portion of the allocated area reserved for the external dummy section.<br />

You can now refer symbolically to the locations in the external dummy section.<br />

Note that the source statements in an external dummy section are not assembled<br />

into object code. Thus, you must create the data described by external dummy<br />

sections at execution time.<br />

| Note: During linking, external dummy sections may be arranged in any order. Do<br />

| not assume any ordering relationship among external dummy sections.<br />

| Classes (MVS and CMS)<br />

| Each section's contributions to a program object are assigned to one or more<br />

| classes, according to their desired binding and loading properties. Class names<br />

| are assigned either by default (see “Default Class Assignments” on page 60) or<br />

| explicitly. You define a class with the CATTR instruction, which must follow the<br />

| initiation of an executable section. The class name is provided in the name entry of<br />

| the CATTR instruction, and attributes of the class are provided by the operands of<br />

| the first CATTR instruction declaring the class. (See “CATTR Instruction (MVS and<br />

| CMS)” on page 112 for further information.) The element containing subsequent<br />

| machine language text or storage definitions is defined by the combination of the<br />

| section and class names, as illustrated in Figure 18 on page 51.<br />

| For example, suppose you define two classes, CLASS_X and CLASS_Y:<br />

| SECT_A CSECT , Define section SECT_A<br />

| CLASS_X CATTR RMODE(ANY) Define class CLASS_X<br />

| - - - Statements for CLASS_X<br />

| CLASS_Y CATTR RMODE(24) Define class CLASS_Y<br />

| - - - Statements for CLASS_Y<br />

| The statements following the first CATTR instruction will be assigned to an element<br />

| defined by the section name SECT_A and the class name CLASS_X. Similarly, the<br />

| statements following the second CATTR instruction will be assigned to an element<br />

| defined by the section name SECT_A and the class name CLASS_Y. CLASS_Y will be<br />

| loaded below 16Mb, and CLASS_X may be loaded anywhere below 2Gb.<br />

| Class names are rarely referenced, because the attributes of the class, such as<br />

| RMODE, are much more important.<br />

| You can resume a class by providing additional CATTR statements with the class<br />

| name in the name entry. No attributes of the class may be specified after the first<br />

| CATTR statement declaring the class.<br />

| Resuming a section will cause subsequent text to be placed in the B_TEXT class if<br />

| there is no intervening CATTR statement defining or resuming a different class:<br />

Chapter 3. Program Structures and Addressing 59

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!