HLASM Language Reference

HLASM Language Reference HLASM Language Reference

faculty.cs.niu.edu
from faculty.cs.niu.edu More from this publisher
22.02.2015 Views

GBLA, GBLB, and GBLC Instructions GBLA, GBLB, and GBLC Instructions Use the GBLA, GBLB, and GBLC instructions to declare the global SETA, SETB, and SETC symbols you need. The SETA, SETB, and SETC symbols are assigned the initial values of 0, 0, and null character string, respectively. ┌─,───────────────┐ ►►──┬─────────────────┬──┬─GBLA─┬─── ▼ ─variable_symbol─┴─────────────►◄ └─sequence_symbol─┘ ├─GBLB─┤ └─GBLC─┘ sequence_symbol is a sequence symbol. variable_symbol is a variable symbol, with or without the leading ampersand (&). These instructions can be used anywhere in the body of a macro definition or in the open code portion of a source module. Any variable symbols declared in the operand field have a global scope. They can be used as SET symbols anywhere after the pertinent GBLA, GBLB, or GBLC instructions. However, they can be used only within those parts of a program in which they have been declared as global SET symbols; that is, in any macro definition and in open code. The assembler assigns an initial value to the SET symbol only when it processes the first GBLA, GBLB, or GBLC instruction in which the symbol appears. Later GBLA, GBLB, or GBLC instructions do not reassign an initial value to the SET symbol. Multiple GBLx statements can declare the same variable symbol so long as only one declaration for a given symbol is encountered during the expansion of a macro. The following rules apply to the global SET variable symbol: Within a macro definition, it must not be the same as any symbolic parameter declared in the prototype statement. It must not be the same as any local variable symbol declared within the same local scope. The same variable symbol must not be declared or used as two different types of global SET symbol; for example, as a SETA or SETB symbol. A global SET symbol should not begin with &SYS because these characters are used for system variable symbols. Subscripted Global SET Symbols A global subscripted SET symbol is declared by the GBLA, GBLB, or GBLC instruction. 344 HLASM V1R5 Language Reference

LCLA, LCLB, and LCLC Instructions ┌─,────────────────────────┐ ►►──┬─────────────────┬──┬─GBLA─┬─── ▼ variable_symbol(dimension) ┴────►◄ └─sequence_symbol─┘ ├─GBLB─┤ └─GBLC─┘ sequence_symbol is a sequence symbol. variable_symbol is a variable symbol, with or without the leading ampersand (&). dimension is the dimension of the array. It must be an unsigned, decimal, self-defining term greater than zero. Example: GBLA &GA(25),&GA1(15) There is no limit on the maximum subscript allowed. Also, the limit specified in the global declaration (GBLx) can be exceeded. The dimension shows the number of SET variables associated with the subscripted SET symbol. The assembler assigns an initial value to every variable in the array thus declared. Notes: 1. Global arrays are assigned initial values only by the first global declaration processed, in which a global subscripted SET symbol appears. 2. A subscripted global SET symbol can be used only if the declaration has a subscript, which represents a dimension; an unsubscripted global SET symbol can be used only if the declaration had no subscript, except for a number attribute reference to the name of a dimensioned SET symbol. Alternative Format for GBLx Statements The assembler permits the alternative statement format for GBLx instructions: Cont. GBLA &GLOBAL_SYMBOL_FOR_DC_GEN, X &LOOP_CONTRL_A, X &VALUE_PASSED_TO_FIDO, X &VALUE_RETURNED_FROM_FIDO LCLA, LCLB, and LCLC Instructions Use the LCLA, LCLB, and LCLC instructions to declare the local SETA, SETB, and SETC symbols you need. The SETA, SETB, and SETC symbols are assigned the initial values of 0, 0, and null character string, respectively. ┌─,───────────────┐ ►►──┬─────────────────┬──┬─LCLA─┬─── ▼ ─variable_symbol─┴─────────────►◄ └─sequence_symbol─┘ ├─LCLB─┤ └─LCLC─┘ Chapter 9. How to Write Conditional Assembly Instructions 345

GBLA, GBLB, and GBLC Instructions<br />

GBLA, GBLB, and GBLC Instructions<br />

Use the GBLA, GBLB, and GBLC instructions to declare the global SETA, SETB,<br />

and SETC symbols you need. The SETA, SETB, and SETC symbols are assigned<br />

the initial values of 0, 0, and null character string, respectively.<br />

┌─,───────────────┐<br />

►►──┬─────────────────┬──┬─GBLA─┬─── ▼ ─variable_symbol─┴─────────────►◄<br />

└─sequence_symbol─┘<br />

├─GBLB─┤<br />

└─GBLC─┘<br />

sequence_symbol<br />

is a sequence symbol.<br />

variable_symbol<br />

is a variable symbol, with or without the leading ampersand (&).<br />

These instructions can be used anywhere in the body of a macro definition or in the<br />

open code portion of a source module.<br />

Any variable symbols declared in the operand field have a global scope. They can<br />

be used as SET symbols anywhere after the pertinent GBLA, GBLB, or GBLC<br />

instructions. However, they can be used only within those parts of a program in<br />

which they have been declared as global SET symbols; that is, in any macro<br />

definition and in open code.<br />

The assembler assigns an initial value to the SET symbol only when it processes<br />

the first GBLA, GBLB, or GBLC instruction in which the symbol appears. Later<br />

GBLA, GBLB, or GBLC instructions do not reassign an initial value to the SET<br />

symbol.<br />

Multiple GBLx statements can declare the same variable symbol so long as only<br />

one declaration for a given symbol is encountered during the expansion of a macro.<br />

The following rules apply to the global SET variable symbol:<br />

Within a macro definition, it must not be the same as any symbolic parameter<br />

declared in the prototype statement.<br />

It must not be the same as any local variable symbol declared within the same<br />

local scope.<br />

The same variable symbol must not be declared or used as two different types<br />

of global SET symbol; for example, as a SETA or SETB symbol.<br />

A global SET symbol should not begin with &SYS because these characters are<br />

used for system variable symbols.<br />

Subscripted Global SET Symbols<br />

A global subscripted SET symbol is declared by the GBLA, GBLB, or GBLC<br />

instruction.<br />

344 <strong>HLASM</strong> V1R5 <strong>Language</strong> <strong>Reference</strong>

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

Saved successfully!

Ooh no, something went wrong!