11.07.2015 Views

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LTORG instructionAddressingDuplicateSince each literal pool is aligned on a SECTALGN alignment, this guarantees thatall literals in the second segment are doubleword aligned; in the third segment,fullword aligned; and, in the fourth, halfword aligned. The minimum value ofSECALGN is doubleword, so quadword alignment is not guaranteed. No space iswasted except, possibly, at the origin of the pool, and in aligning to the start of thestatement following the literal pool.Literals from the following statements are in the pool, in the segments indicated bythe parenthesized numbers:FIRST START 0.MVC TO,=3F’9’ (3)AD 2,=D’7’ (2)IC 2,=XL1’8’ (5)MVC MTH,=CL3’JAN’ (5)LM 4,5,=2F’1,2’ (2)AH 5,=H’33’ (4)L 2,=A(ADDR) (3)MVC FIVES,=XL16’05’ (1)considerationsIf you specify literals in source modules with multiple control sections, you should:v Write a LTORG instruction at the end of each control section, so that all theliterals specified in the section are assembled into the one literal pool for thatsection. If a control section is divided and interspersed among other controlsections, you should write a LTORG instruction at the end of each segment ofthe interspersed control section.v When establishing the addressability of each control section, make sure (a) thatall of the literal pool for that section is also addressable, by including it within aUSING range, and (b) that the literal specifications are within the correspondingUSING domain. The USING range and domain are described in “USINGinstruction” on page 216.All the literals specified after the last LTORG instruction, or, if no LTORGinstruction is specified, all the literals in a source module are assembled into aliteral pool at the end of the first control section. You must then make this literalpool addressable, along with the addresses in the first control section. This literalpool is printed in the program listing after the END instruction.literalsIf you specify duplicate literals within the part of the source module that iscontrolled by a LTORG instruction, only one literal constant is assembled into thepertinent literal pool. This also applies to literals assembled into the literal pool atthe end of the first or only control section of a source module that contains noLTORG instructions.Literals are duplicates only if their specifications are identical, not if the object codeassembled happens to be identical.When two literals specifying identical A-type, Y-type or S-type address constantscontain a reference to the value of the location counter (*), both literals areassembled into the literal pool. This is because the value of the location countermay be different in the two literals. Even if the location counter value is the samefor both, they are still both assembled into the literal pool.194 <strong>HLASM</strong>: <strong>V1R6</strong> <strong>Language</strong> <strong>Ref</strong>

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

Saved successfully!

Ooh no, something went wrong!