HLASM Language Reference
HLASM Language Reference HLASM Language Reference
DROP Instruction DROP Instruction The DROP instruction ends the domain of a USING instruction. This: Frees base registers previously assigned by the USING instruction for other programming purposes Ensures that the assembler uses the base register you want in a particular coding situation, for example, when two USING ranges overlap or coincide If a control section has not been established, DROP will initiate an unnamed (private) control section ►►──┬─────────────────┬──DROP──┬─────────────────────┬─────────────►◄ └─sequence_symbol─┘ │ ┌─,───────────────┐ │ └── ▼ ┬─base_register─┬┴─┘ └─label─────────┘ sequence_symbol is a sequence symbol. base_register is an absolute expression whose value represents one of the general registers 0 through 15. The expression in base_register indicates a general register, previously specified in the operand of an ordinary USING statement, that is no longer to be used for base addressing. label is one of the following: An ordinary symbol A variable symbol that has been assigned a character string with a value that is valid for an ordinary symbol The ordinary symbol denoted by label must be a symbol previously used in the name field of a labeled USING statement or a labeled dependent USING statement. If neither base_register nor label is specified in the operand of a DROP instruction, all active base registers assigned by ordinary, labeled, and labeled dependent USING instructions are dropped. After a DROP instruction: The assembler does not use the register or registers specified in the DROP instruction as base registers. A register made unavailable as a base register by a DROP instruction can be reassigned as a base register by a subsequent USING instruction. The label or labels specified in the DROP instruction are no longer available as symbol qualifiers. A label made unavailable as a symbol qualifier by a DROP instruction can be reassigned as a symbol qualifier by a subsequent labeled USING instruction. The following statements, for example, stop the assembler using registers 7 and 11 as base registers, and the label FIRST as a symbol qualifier: 172 HLASM V1R5 Language Reference
DROP Instruction DROP 7,11 DROP FIRST Labeled USING: You cannot end the domain of a labeled USING instruction by coding a DROP instruction that specifies the same registers as were specified in the labeled USING instruction. If you want to end the domain of a labeled USING instruction, you must code a DROP instruction with an operand that specifies the label of the labeled USING instruction. Dependent USING: To end the domain of a dependent USING instruction, you must end the domain of the corresponding ordinary USING instruction. In the following example, the DROP instruction prevents the assembler from using register 12 as a base register. The DROP instruction causes the assembler to end the domain of the ordinary USING instruction and the domains of the two dependent USING instructions. The storage areas represented by INREC and OUTREC are both within the range of the ordinary USING instruction (register 12). USING ,12 USING RECMAP,INREC USING RECMAP,OUTREC . . DROP 12 . . INREC DS CL156 OUTREC DS CL156 To end the domain of a labeled dependent USING instruction, you can code a DROP instruction with the USING label in the operand. The following example shows this: USING ,12 PRIOR USING RECMAP,INREC POST USING RECMAP,OUTREC . . DROP PRIOR,POST . . INREC DS CL156 OUTREC DS CL156 In the above example, the DROP instruction makes the labels PRIOR and POST unavailable as symbol qualifiers. When a labeled dependent USING domain is dropped, none of any subordinate USING domains are dropped. In the following example the labeled dependent USING BLBL1 is not dropped, even though it is dependent on the USING ALBL2 that is dropped: Chapter 5. Assembler Instruction Statements 173
- Page 142 and 143: COPY Instruction In the following e
- Page 144 and 145: CSECT Instruction symbol in the nam
- Page 146 and 147: DC Instruction ROUTINE B GAMMA DXD
- Page 148 and 149: DC Instruction duplication_factor c
- Page 150 and 151: DC Instruction Figure 33 (Page 2 of
- Page 152 and 153: DC Instruction With EBCDIC spaces
- Page 154 and 155: DC Instruction Further information
- Page 156 and 157: DC Instruction | Symbols used in su
- Page 158 and 159: DC Instruction The length attribute
- Page 160 and 161: DC Instruction Notes: 1. Don't conf
- Page 162 and 163: DC Instruction—Character Constant
- Page 164 and 165: DC Instruction—Character Constant
- Page 166 and 167: DC Instruction—Graphic Constant r
- Page 168 and 169: DC Instruction—Fixed-Point Consta
- Page 170 and 171: DC Instruction—Fixed-Point Consta
- Page 172 and 173: DC Instruction—Decimal Constants
- Page 174 and 175: DC Instruction—Address Constants
- Page 176 and 177: DC Instruction—Address Constants
- Page 178 and 179: DC Instruction—Offset Constant re
- Page 180 and 181: DC Instruction—Length Constant Le
- Page 182 and 183: DC Instruction—Hexadecimal Floati
- Page 184 and 185: DC Instruction—Hexadecimal Floati
- Page 186 and 187: DC Instruction—Hexadecimal Floati
- Page 188 and 189: DC Instruction—Binary Floating-Po
- Page 190 and 191: DC Instruction—Binary Floating-Po
- Page 194 and 195: DS Instruction USING DSECTA,14 ALBL
- Page 196 and 197: DS Instruction The size of a storag
- Page 198 and 199: DSECT Instruction DSECT Instruction
- Page 200 and 201: DXD Instruction ASEMBLY2 CSECT USIN
- Page 202 and 203: END Instruction change but no addit
- Page 204 and 205: EQU Instruction EQU Instruction The
- Page 206 and 207: EQU Instruction 5. The length attri
- Page 208 and 209: EXITCTL Instruction sequence_symbol
- Page 210 and 211: ISEQ Instruction must be greater th
- Page 212 and 213: LOCTR Instruction A CSECT , See not
- Page 214 and 215: LTORG Instruction If symbol is an o
- Page 216 and 217: MNOTE Instruction When two literals
- Page 218 and 219: OPSYN Instruction ,ERROR, SEV 1 An
- Page 220 and 221: ORG Instruction AFTER is defined in
- Page 222 and 223: ORG Instruction If you specify mult
- Page 224 and 225: POP Instruction POP Instruction The
- Page 226 and 227: PRINT Instruction Note: If the next
- Page 228 and 229: Process Statement Process Statement
- Page 230 and 231: REPRO Instruction NOPRINT instructs
- Page 232 and 233: RSECT Instruction 4. AMODE or RMODE
- Page 234 and 235: START Instruction START Instruction
- Page 236 and 237: TITLE Instruction The name value is
- Page 238 and 239: USING Instruction Only the characte
- Page 240 and 241: USING Instruction Base Registers fo
DROP Instruction<br />
DROP Instruction<br />
The DROP instruction ends the domain of a USING instruction. This:<br />
Frees base registers previously assigned by the USING instruction for other<br />
programming purposes<br />
Ensures that the assembler uses the base register you want in a particular<br />
coding situation, for example, when two USING ranges overlap or coincide<br />
If a control section has not been established, DROP will initiate an unnamed<br />
(private) control section<br />
►►──┬─────────────────┬──DROP──┬─────────────────────┬─────────────►◄<br />
└─sequence_symbol─┘<br />
│ ┌─,───────────────┐<br />
│<br />
└── ▼ ┬─base_register─┬┴─┘<br />
└─label─────────┘<br />
sequence_symbol<br />
is a sequence symbol.<br />
base_register<br />
is an absolute expression whose value represents one of the general registers<br />
0 through 15. The expression in base_register indicates a general register,<br />
previously specified in the operand of an ordinary USING statement, that is no<br />
longer to be used for base addressing.<br />
label<br />
is one of the following:<br />
An ordinary symbol<br />
A variable symbol that has been assigned a character string with a value<br />
that is valid for an ordinary symbol<br />
The ordinary symbol denoted by label must be a symbol previously used in the<br />
name field of a labeled USING statement or a labeled dependent USING<br />
statement.<br />
If neither base_register nor label is specified in the operand of a DROP instruction,<br />
all active base registers assigned by ordinary, labeled, and labeled dependent<br />
USING instructions are dropped.<br />
After a DROP instruction:<br />
The assembler does not use the register or registers specified in the DROP<br />
instruction as base registers. A register made unavailable as a base register<br />
by a DROP instruction can be reassigned as a base register by a subsequent<br />
USING instruction.<br />
The label or labels specified in the DROP instruction are no longer available as<br />
symbol qualifiers. A label made unavailable as a symbol qualifier by a DROP<br />
instruction can be reassigned as a symbol qualifier by a subsequent labeled<br />
USING instruction.<br />
The following statements, for example, stop the assembler using registers 7 and 11<br />
as base registers, and the label FIRST as a symbol qualifier:<br />
172 <strong>HLASM</strong> V1R5 <strong>Language</strong> <strong>Reference</strong>