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.

USING instructionregister for assembling the addresses within the common USING range. In effect,the domain of the USING instruction that specifies the lower-numbered register isended by the other USING instruction. If the domain of the USING instruction thatspecifies the higher-number register is subsequently terminated, the domain of theother USING instruction is resumed.Two USING ranges overlap when the base address of one USING instruction lieswithin the range of another USING instruction. You can use the WARN suboptionof the USING assembler option to find out if you have any overlapping USINGranges. When an overlap occurs the assembler issues a diagnostic message.However, the assembler does allow an overlap of one byte in USING ranges sothat you don’t receive a diagnostic message if you code the following statements:PSTARTCSECTLRLAUSINGUSINGR12,R15R11,4095(,R12)PSTART,R12PSTART+4095,R11In the above example, the second USING instruction begins the base address of thesecond base register (R11) in the 4096th byte of the first base register (R12) USINGrange. If you don’t want the USING ranges to overlap, you can code the followingstatements:PSTARTCSECTLRLALAUSINGUSINGR12,R15R11,4095(,R12)R11,1(,R11)PSTART,R12PSTART+4096,R11When two ranges overlap, the assembler computes displacements from the baseaddress that gives the smallest non-negative displacement; or if no non-negativedisplacement can be found, for long-displacement instructions, the base registergiving the smallest negative displacement; it uses the corresponding base registerwhen it assembles the addresses within the range overlap. This applies only toimplicit addresses that appear after the second USING instruction.LOCTR does not affect the USING domain.Domain of an ordinary USING instructionThe domain of an ordinary USING instruction (called the ordinary USING domain,or simply the USING domain) begins where the USING instruction appears in asource module. It continues until the end of a source module, except when:v A subsequent DROP instruction specifies the same base register or registersassigned by a preceding USING instruction.v A subsequent USING instruction specifies the same register or registers assignedby a preceding USING instruction.The assembler converts implicit address references into their explicit form whenthe following conditions are met:v The address reference appears in the domain of a USING instruction.v The addresses referred to lie within the range of some USING instruction.The assembler does not convert implicit address references that are outside theUSING domain. The USING domain depends on the position of the USINGinstruction in the source module after conditional assembly, if any, has been done.Chapter 5. Assembler instruction statements 221

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

Saved successfully!

Ooh no, something went wrong!