SMP/E for z/OS Commands
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Building MAC entries

SMP/E for z/OS Commands
SA23-2275-01

In the process of reading and writing inline assembler input and building an ASSEM entry, the operation field (operation codes) of each assembler statement is scanned. If column 1 of the assembler statement is blank, SMP/E considers the first character string found to be the operation code. If column 1 is not blank, the second character string found is the operation code.

For each operation code found, SMP/E determines whether it is a macro invocation or an assembler instruction. It does so by using its default set of OPCODE definitions. SMP/E's default set of OPCODE definitions identifies all the operation codes in ESA/390 Principles of Operation, SA22-7201, as well as all the assembler instructions supported by the High Level Assembler (ASMA90).

You may optionally provide your own OPCODE member to override SMP/E's default set of OPCODE definitions. The user-provided OPCODE member is a text member stored in a user-allocated PDS named SMPPARM. You are not required to allocate the SMPPARM data set, unless you want to supply your own user-defined member. The operation fields (operation codes) of the assembler input are scanned during JCLIN processing and are compared to the OPCODE definitions (either user-defined or default).

SMP/E uses the following method to determine whether an assembler instruction is an OPCODE or a macro:
  • SMP/E looks for a user-allocated SMPPARM data set.
  • If SMPPARM is not found, SMP/E uses the default set of OPCODE definitions.

    If SMPPARM is found and there is a user-defined OPCODE member specified on the JCLIN statement or in the ++JCLIN MCS, then SMP/E searches for the specified member in SMPPARM. If it finds that member, it will look first in that member for a definition of the character string.

  • If the user-defined OPCODE member specified is not found, SMP/E searches SMPPARM for the GIMOPCDE member. If it finds the GIMOPCDE member, it will look only in that member for a definition of the character string. (The GIMOPCDE member, if it exists in SMPPARM, will completely override SMP/E's default set of OPCODE definitions.)
  • If the GIMOPCODE member is not found, SMP/E uses the default set of OPCODE definitions.
  • If the character string is not defined in either the SMPPARM data set or the default set, SMP/E considers it to be a macro.

For a description of the format of the OPCODE member control cards, see the "SMP/E OPCODE Member Control Statements" section in SMP/E for z/OS Reference.

For each macro found in the assembly input, SMP/E takes these actions:
  • Locates the MAC entry in the zone being processed. If the entry is found, it is modified. If the entry is not found, a new entry is created.
  • Updates the MAC entry by adding the name of the assembly module (as previously described) as a GENASM subentry. This now means that each macro used during the assembly includes a reference to the target zone ASSEM entry. Therefore, when a SYSMOD is processed that modifies that macro, SMP/E knows what target zone ASSEM entries should be reassembled in order to include the new macro.
Note: After JCLIN processing that creates a new MAC entry, the only data present in the MAC entry is the set of GENASM subentries. Additional data, such as the distribution library, is added to the MAC entry during the installation of the SYSMOD supplying the actual macro.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014