LTORG instruction

Use the LTORG instruction so that the assembler can collect and assemble literals into a literal pool. A literal pool contains the literals you specify in a source module either after the preceding LTORG instruction, or after the beginning of the source module.

If a control section has not been established, LTORG initiates an unnamed (private) control section.
Read syntax diagramSkip visual syntax diagramsymbolLTORG
symbol
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
  • A sequence symbol

If symbol is an ordinary symbol or a variable symbol that has been assigned an ordinary symbol, the ordinary symbol is assigned the value of the address of the first byte of the literal pool. This symbol is aligned on a boundary specified by the SECTALGN option, and has a length attribute of 1.

If bytes are skipped after the end of a literal pool to achieve alignment for the next instruction, constant, or area, the bytes are not filled with zeros.

If the literal pool does not reside in a DSECT, and includes any items that require quadword alignment, and the SECTALGN value defaults to 8, the assembly of the literal causes the issue of an ASMA500W message.

The assembler ignores the borders between control sections when it collects literals into pools. Therefore, you must be careful to include the literal pools in the control sections to which they belong (for details, see Addressing considerations).

The creation of a literal pool gives the following advantages:
  • Automatic organization of the literal data into sections that are correctly aligned and arranged so that minimal space is wasted in the literal pool.
  • Assembling of duplicate data into the same area.
  • Because all literals are cross-referenced, you can find the literal constant in the pool into which it has been assembled.