HLASM Language Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Literals, constants, and self-defining terms

HLASM Language Reference
SC26-4940-06

Literals, constants, and self-defining terms differ in three important ways:
  • Where you can specify them in machine instructions, that is, whether they represent data or an address of data
  • Whether they have relocatable or absolute values
  • What is assembled into the object code of the machine instruction in which they appear
Figure 1 shows examples of the differences between literals, constants, and self-defining terms.
Figure 1. Differences between literals, constants, and self-defining terms
  1. A literal with a relocatable address:
             L     3,=F'33'       Register 3 set to 33.  See note 1
             L     3,F33          Register 3 set to 33.  See note 2
             .
             .
             .
    F33      DC    F'33'
  2. A literal with a self-defining term and a symbol with an absolute value
             MVC   FLAG,=X'00'    FLAG set to X'00'.  See note 1
             MVI   FLAG,X'00'     FLAG set to X'00'.  See note 3
             MVI   FLAG,ZERO      FLAG set to X'00'.  See note 4
             .
             .
             .
    FLAG     DS    X
    ZERO     EQU   X'00'
  3. A symbol having an absolute address value specified by a self-defining term
             LA    4,LOCORE       Register 4 set to 1000.  See note 4
             LA    4,1000         Register 4 set to 1000.  See note 3
             .
             .
             .
    LOCORE   EQU   1000
Notes:
  1. A literal both defines data and represents data. The address of the literal is assembled into the object code of the instruction in which it is used. The constant specified by the literal is assembled into the object code, in the literal pool.
  2. A constant is represented by a symbol with a relocatable value. The address of a constant is assembled into the object code.
  3. A self-defining term has an absolute value. In this example, the absolute value of the self-defining term is assembled into the object code.
  4. A symbol with an absolute value does not represent the address of a constant, but represents either immediate data or an absolute address. When a symbol with an absolute value represents immediate data, it is the absolute value that is assembled into the object code.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014