Scanning Assembler code

About this task

When you request an inventory of Assembler source code, the Rational® Asset Analyzer Assembler analyzer runs the following two separate phases:
  1. The High-Level Assembler (HLASM) translator (ASMA90) to create an ADATA output file
  2. A REXX exec to analyze the ADATA output file and create Rational Asset Analyzer metadata

When Rational Asset Analyzer was configured on your system, your administrator might have specified the HLASM library. If that was not done, the standard STEPLIB, JOBLIB, LINKLIST, and LPA search paths are used. If this default is not appropriate for your site, have your administrator provide the HLASM library on the Rational Asset Analyzer Set up panel.

When scanning Assembler code, keep the following considerations in mind:

  • The analyzer uses the HLASM translator options NODECK, NOOBJ, ALIGN, and ADATA.
  • The analyzer supports ADATA from HLASM V1R3, V1R4 and V1R5.
  • By default SYS1.MACLIB is used to locate INCLUDEs and MACROs. If needed, you should define concatenation sets to specify other containers in which to search.
  • The following metadata is captured from the ADATA:
    • Included source names
    • Included macro names
    • Entry points
    • Data declarations
    • Literals
    • User defined symbols
    • External control transfers (for example, CALLs)
    • HLASM translator syntax messages
  • Program support is limited to a single program per file. The analyzer does not support batch assembly in which a file contains a sequence of separate Assembler programs that are each terminated by END statements and assembled using a single invocation of the assembler using the BATCH option. The analyzer will process the programs in the file, however, it will only load metadata for the first program in the file.
  • There is no support for embedded languages, such as CICS®, SQL or DLI statements.
When you are taking an inventory of Assembler source containing EXEC CICS or EXEC CPSM commands, process them with the CICS translator before analyzing them with Rational Asset Analyzer. The CICS translator will locate each EXEC command, convert each EXEC command into comments, and generate invocations of the DFHxCALL macro. You can store the output from the CICS translator in a staging data set and use the data set as input for inventory and analysis by Rational Asset Analyzer. The following examples show the results generated by the CICS translator:
  • EXEC CICS --> DFHECALL
    *        EXEC CICS RETURN                                              
             DFHECALL =X'0E0800000800001000'                               
  • EXEC CPSM --> DFHSCALL
    *        EXEC  CPSM TERMINATE                                           
    *                   RESPONSE(RESPONSE)                                  
    *                   REASON(REASON)                                      
             DFHSCALL =X'F01C0C00080C000000000000000000',,,,,(FB_4__RF,RESP*
                   ONSE),(FB_4__RF,REASON)                                  
    EXIT     DS    0H                                                       

Although the DFHxCALL statements invoke CICS-provided EXEC interface modules, these statements are essentially ignored by the Rational Asset Analyzer Assembler analyzer.

Programs with EXEC CICS syntax that have been processed through the CICS translator and inventoried by Rational Asset Analyzer will not have a row in the DMH_MEM_NUM_ATTR table (for example: attr_type_id = 30 for EXEC CICS syntax, determined by the classification scan). This means that results for Advanced search using Program type = All CICS programs will not include any translated programs.

Assembler source containing EXEC CICS or EXEC CPSM commands that are not translated can be inventoried by Rational Asset Analyzer, however, the Analysis status will be Error and syntax errors will be reported on the "Program details" page. For example:
RC=8 TYPE=CU ASMA057E Undefined operation code - EXEC

Programs with EXEC CICS syntax that have not been processed through the CICS translator and inventoried will have a row in the DMH_MEM_NUM_ATTR table (for example: attr_type_id = 30 for EXEC CICS syntax, determined by the classification scan). This means that results for Advanced search using Program type = All CICS programs will include any non-translated programs.

See the related reference for how Rational Asset Analyzer handles other Assembler items.