11.07.2015 Views

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

HLASM: V1R6 Language Ref

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

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

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

Beginning of a source modulez/VM and z/OSWhen you specify the GOFF assembler option, the maximum value of the locationcounter and the maximum length of an element or part is 2 31 −1, or X'7FFFFFFF'bytes.End of z/VM and z/OSLocation counter and length limitsThe assembler also maintains a length counter for each individually relocatablecomponent of the program: executable and reference control sections, elements,and parts.If any location counter overflows its maximum value, High Level Assembler issuesthe severe error message:ASMA039S Location counter errorand continues assembling with the location counter value “wrapping” around tozero.The length of a section, element, or part cannot exceed the maximum allowedlength described above. If the length counter reaches this maximum value, it staysfixed at that value without an error condition or error message. Exceeding thelength counter will cause overflow of the location counter, producing the ASMA039Smessage.The location counter setting is relative to the beginning of the location itrepresents, and the length counter represents the cumulative length of the controlsection. This means that the length counter is nearly always greater than thelocation counter, and can exceed its maximum value before the location counter.Even if the location counter overflows, the length counter value may be correct,and reassembling with the NOTHREAD option may avoid the location counteroverflow condition.Use of multiple location countersHigh Level Assembler lets you use multiple location counters for each individualcontrol section. Use the LOCTR instruction (see “LOCTR instruction” on page 190)to assign different location counters to different parts of a control section. Theassembler then rearranges and assembles the coding together, according to thedifferent location counters you have specified: all coding using the first locationcounter is assembled together, then the coding using the second location counter isassembled together, and so forth.An example of the use of multiple location counters is shown in Figure 13 on page62. In the example, executable instructions and data areas have been interspersedthroughout the coding in their logical sequence, each group of instructionspreceded by a LOCTR instruction identifying the location counter under which it isto be assembled. The assembler rearranges the control section so that theexecutable instructions are grouped together and the data areas are groupedtogether. Symbols are not resolved in the order they appear in the source program,but in location counter sequence.Chapter 3. Program structures and addressing 61

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

Saved successfully!

Ooh no, something went wrong!