ASSEM entry (distribution and target zone)

The ASSEM entry contains assembler statements that can be assembled to create an object module. It is created during JCLIN processing when SMP/E encounters an assembler step with inline assembler input. When the module is reassembled using the statements in the ASSEM entry, SMP/E copies those statements into the SMPWRK2 data set, and then assembles the module.

If a macro is invoked in the assembly, the ASSEM entry is pointed to by the GENASM subentry in the MAC entry created for that macro. As a result, when that macro is updated, SMP/E can reassemble the affected module using the statements in the ASSEM entry. For additional information, see the "Processing" sub-topic in the JCLIN command topic in SMP/E for z/OS Commands.

Subentries

These are the subentries for the ASSEM entry as they appear in the LIST output:
name
is the name of the ASSEM entry. It corresponds to the name of the module that can be reassembled by use of that ASSEM entry.

The name can contain from 1 to 8 alphanumeric characters.

ASSEMBLER INPUT
is the actual assembler statements that were saved for this module during JCLIN processing. These statements are passed to the assembler whenever this module must be reassembled.
The UCL operands are ++ASMIN and ++ENDASMIN.
  • An ASSEM entry must contain at least the ++ASMIN and ++ENDASMIN statements, plus the associated assembler statements.
  • The ++ASMIN and ++ENDASMIN statements must start in column 1.
  • No other operands can start on the same line as the ++ASMIN statement.
  • If you specify the ++ASMIN statement, you must also specify the ++ENDASMIN statement.
LASTUPD
identifies the cause of the last change to this ASSEM entry.
The UCL operand is LASTUPD(value). This subentry can contain one of the following values:
JCLIN
indicates that the change was made during JCLIN command processing.
UCLIN
indicates that the change was made as a result of UCLIN processing.
sysmod_id
indicates that the change was made during the installation of the indicated SYSMOD.

The SYSMOD ID must contain 7 alphanumeric characters.

LASTUPD TYPE
indicates how the entry was last changed.
The UCL operand is LASTUPDTYPE(value). This subentry can contain one of the following values:
ADD
The entry was added.
UPD
The entry was updated.

LIST Examples

To list all the ASSEM entries in a particular zone, you can use the following commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     ASSEM              /* List all ASSEM entries.  */.
To list specific ASSEM entries, you can use these commands:
SET      BDY(TGT1)          /* Set to requested zone.   */.
LIST     ASSEM(ASSEM01      /* List only these two      */
               ASSEM02)     /* entries.                 */.
The format of the LIST output for each ASSEM entry is the same for both of these commands. The only difference is the number of ASSEM entries listed. Figure 1 is an example of LIST output for ASSEM entries.
Figure 1. ASSEM entry: sample LIST output
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

TGT1          ASSEMBLER ENTRIES


  NAME

ASSEM01   LASTUPD         = JXY1102 TYPE=ADD
          ASSEMBLER INPUT = ...
                            ... assembler statements
                            ....

ASSEM02   LASTUPD         = JXY1121 TYPE=UPD
          ASSEMBLER INPUT = ...
                            ... assembler statements
                            ...
You can use the LIST command to find the MAC entries for macros that are called by the assembler statements in this ASSEM entry. To include the names of these MAC entries in the LIST output, you can use the XREF operand, as shown in these commands:
SET      BDY(TGT1)          /* Set to requested zone.     */.
LIST     ASSEM              /* List all ASSEM entries     */
         XREF               /* and macros that use them.  */.
Note:
  1. You can use XREF in either mass mode or select mode.
  2. SMP/E obtains the data included for the XREF operand by checking the GENASM subentries in all the MAC entries. Because this data is not contained in the ASSEM entry itself, you cannot use UCLIN to change it in the ASSEM entry.
Figure 2 is an example of the LIST output produced when the XREF operand is used.
Figure 2. ASSEM entry: sample LIST output when XREF is specified
PAGE nnnn  - NOW SET TO zzzzzz ZONE nnnnnnn  DATE mm/dd/yy TIME hh:mm:ss SMP/E 36.nn SMPLIST OUTPUT

TGT1          ASSEMBLER ENTRIES


  NAME

ASSEM01   LASTUPD         = JXY1102 TYPE=ADD
          ASSEMBLER INPUT = ...
                            ... assembler statements
                            ...
          MACROS USED     = NAME      FMID
                            MAC01     JXY1102
                            MAC02     JXY1121

ASSEM02   LASTUPD         = JXY1121 TYPE=UPD
          ASSEMBLER INPUT = ...
                            ... assembler statements
                            ...
          MACROS USED     = NAME      FMID
                            MAC01     JXY1102
                            MAC03     JXY1121

UNLOAD Examples

To dump the ASSEM entries in UCL format, you can use the UNLOAD command. To unload all the ASSEM entries in a particular zone, you can use the following commands:
SET      BDY(TGT1)          /* Set to requested zone.     */.
UNLOAD   ASSEM              /* Unload all ASSEM entries.  */.
To unload specific ASSEM entries, you can use these commands:
SET      BDY(TGT1)          /* Set to requested zone.     */.
UNLOAD   ASSEM(ASSEM01      /* Unload only these two      */
               ASSEM02)     /* entries.                   */.
The format of the UNLOAD output for each ASSEM entry is the same for both of these commands. The only difference is the number of ASSEM entries listed. Figure 3 is an example of UNLOAD output for ASSEM entries.
Figure 3. ASSEM entry: sample UNLOAD output
UCLIN .
REP       ASSEM           ( ASSEM01  )
          LASTUPD         ( JXY1102  )
          LASTUPDTYPE     ( ADD )
++ASMIN
...
... assembler statements
...
++ENDASMIN
                          .

REP       ASSEM           ( ASSEM02  )
          LASTUPD         ( JXY1121  )
          LASTUPDTYPE     ( UPD )
++ASMIN
...
... assembler statements
...
++ENDASMIN
                          .
ENDUCL.

UCLIN Examples

You can use the ADD, REP, and DEL UCL statements to change subentries in the ASSEM entry. When you use UCLIN to update an ASSEM entry, keep these points in mind:
  • After the UCLIN changes are done, the ASSEM entry must contain at least ++ASMIN and ++ENDASMIN statements, plus the associated assembler input. Otherwise, there is not enough information in the entry to assemble the associated module.
  • The input following the ++ASMIN statement replaces the existing assembler input in the ASSEM entry.
  • If a DEL statement deletes all the existing subentries in the entry, SMP/E deletes the entire entry.
  • When SMP/E processes a DEL statement, it does not compare any assembler input after the ++ASMIN statement with the input that is currently in the ASSEM entry. It just deletes the existing assembler input. This causes an error, because there is now insufficient data in the ASSEM entry.

The following examples are provided to help you use the ASSEM entry.