HLASM Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


SIZE

HLASM Programmer's Guide
SC26-4941-06

Read syntax diagramSkip visual syntax diagram
   .-SIZE(MAX)---------------------------.   
>>-+-------------------------------------+---------------------><
   '-SIZE(-+-integerK----------------+-)-'   
           +-integerM----------------+       
           +-MAX,ABOVE---------------+       
           +-MAX-integerK-+--------+-+       
           |              '-,ABOVE-' |       
           '-MAX-integerM-+--------+-'       
                          '-,ABOVE-'         

You use the SIZE option to specify the amount of virtual storage available to the assembler to perform an in-storage assembly.

Default
SIZE(MAX)
Abbreviation
SZ
Restrictions
You cannot specify this option on *PROCESS statements.
integerK
Specifies the amount of virtual storage in 1024-byte (1 KB) increments.

The minimum acceptable value is 200 KB (refer to Note 2).

integerM
Specifies the amount of virtual storage in 1048576-byte (1 MB) increments.

The minimum acceptable value is 1 MB.

MAX
Specifies that the assembler requests all the available space (refer to Note 3) in the user region (z/OS), or virtual machine (CMS) or in the partition GETVIS (z/VSE).
MAX-integerK
Specifies that the assembler requests all the available space (refer to Note 3) in the user region (z/OS), virtual machine (CMS) or partition GETVIS (z/VSE) less the amount of integerK of storage (1 KB equals 1024 bytes).

The minimum acceptable integerK value is 1 KB.

MAX-integerM
Specifies that the assembler requests all the available space (refer to Note 3) in the user region (z/OS), or virtual machine (CMS) less the amount of integerK of storage (1 MB equals 1048756 bytes).

The minimum acceptable integerM value is 1 MB.

Note:
  1. The maximum storage value you can specify might not be available in the user region (z/OS), virtual machine (CMS), or in the partition GETVIS (z/VSE), after storage has been allocated by the operating system for I/O buffers, and so on.
  2. The minimum amount of working storage required by the assembler is 200 KB or 10 times the work data set block size, whichever is greater.
  3. When you specify the MAX suboption, the assembler releases 128 KB back to the user region (z/OS), virtual machine (CMS), or the partition GETVIS (z/VSE), for system usage. When you specify the MAX suboption, there might not be enough storage remaining in the user region (z/OS), virtual machine (CMS), or the partition GETVIS (z/VSE), to load any exits you specify, or any external functions you use in your assembly or for operating system functions that might be required during the assembly. If the assembly does fail due to a lack of storage, then use MAX-integerK or MAX-integerM to ensure that there is sufficient free storage during the assembly for any of these functions.
  4. The assembler loads user I/O exits before it obtains the working storage. If the user exit obtains storage, then it reduces the amount available for the assembler.
  5. The assembler loads external function routines after it obtains working storage. If you use external functions in your program, you should reduce the value you specify in the SIZE option, to allow storage space for the external function modules, and any storage they might acquire.
  6. With High Level Assembler R6, the ABOVE operand is obsolete. It is documented here for compatibility. The assembler ignores this operand and always attempts to obtain the storage specified by the SIZE option from above the 16 MB line. If storage above the 16 MB line is not available, the assembler attempts to obtain the storage from below the 16 MB line.

High Level Assembler acquires the amount of storage you specify in the SIZE option from the user region (z/OS), virtual machine (CMS), or partition GETVIS (z/VSE). The assembler only requires a work data set when it has insufficient virtual storage to perform an in-storage assembly. An in-storage assembly normally reduces the elapsed time needed to complete the assembly.

The statistics in the Diagnostic Cross Reference and Assembler Summary section of the assembly listing shows the amount of storage the assembler allocated and the amount of storage the assembler used. Specify a large enough value on the SIZE option to allow the assembler to perform an in-storage assembly, otherwise you must provide a work data set.

To reduce the amount of storage required by the assembly you can disable some of the cross-reference sections of the assembler listing, for example you can specify NOMXREF, NORXREF, or NOXREF. Additionally if ADATA is not required then it should be disabled by specifying NOADATA. Enabling of ADATA processing causes most of the cross-reference processing to be done, even though the sections are not output to the assembler listing.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014