- 「メインフレーム・コンピューター」で遊ぼう - http://www.arteceed.net -

アセンブラープログラムの作成(アセンブルJCL)

アセンブラーはメインフレーム・コンピューターでは現在でも広く利用されています。業務アプリケーション・プログラムを作成することはなくなってきたものの、OSのEXIT(出口)ルーチンやミドルウェア製品のパラメーター生成など使う機会はまだまだあります。
アセンブルオプションなどについては使用するアセンブラーのマニュアルを参照して下さい。


MVS高水準アセンブラーJCLサンプル

    //*********************************************************************
    //*        Sample JCL for IBM HIGH-LEVEL ASSEMBLER
    //*        =======================================
    //*********************************************************************
    //ASM      EXEC PGM=ASMA90,
    //         PARM=('OBJ,NODECK,XREF(SHORT),TERM,ASA,LANG(UE)',
    //             'US(MAP,WARN(11))')
    //SYSPRINT DD SYSOUT=*
    //SYSTERM  DD SYSOUT=*
    //SYSLIB   DD DISP=SHR,DSN=MY.PROGRAM,DCB=BLKSIZE=32720
    //         DD DISP=SHR,DSN=SYS1.MACLIB
    //         DD DISP=SHR,DSN=SYS1.MODGEN
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(5,5))
    //SYSLIN   DD DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(15,15))
    //SYSIN    DD DISP=SHR,DSN=MY.PROGRAM(ASMTEST1)
    //
    
    //LKED     EXEC PGM=IEWL,PARM=('LIST,LET,MAP,XREF')
    //SYSPRINT DD SYSOUT=*
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSLIB   DD DISP=SHR,DSN=MY.LINKLIB
    //SYSLMOD  DD DISP=SHR,DSN=MY.LINKLIB(COBTEST1)
    //SYSLIN   DD DISP=(OLD,DELETE),DSN=*.ASM.SYSLIN
    //         DD *
    リンケージエディタ制御文
    //
    
    //LOADER   EXEC PGM=LOADER,PARM='LIST,LET,MAP,XREF'
    //SYSLOUT  DD SYSOUT=*
    //SYSLIN   DD DISP=(OLD,DELETE),DSN=*.ASM.SYSLIN
    //
    

REGIONパラメーターは必要に応じて指定して下さい。アセンブルされたオブジェクトモジュールはバインダーでロードモジュールにするか、ローダーで直接実行します。
アセンブラーは標準のカタログプロシージャーを提供しています(SYS1.PROCLIB)からそちらも参考にしてください。
          ASMAC,ASMACG,ASMACL,ASMACLG


MSPアセンブラーJCLサンプル

    //*********************************************************************
    //*        Sample JCL for FACOM STD ASSEMBLER
    //*        ==================================
    //*********************************************************************
    //ASM      EXEC PGM=JNP000,
    //         PARM=('OBJ,NODECK,XREF(SHORT),TERM,LANGLVL(1)')
    //SYSPRINT DD SYSOUT=*
    //SYSTERM  DD SYSOUT=*
    //SYSLIB   DD DISP=SHR,DSN=MY.PROGRAM,DCB=BLKSIZE=32720
    //         DD DISP=SHR,DSN=SYS1.MACLIB
    //         DD DISP=SHR,DSN=SYS1.MODGEN
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(5,5))
    //SYSLIN   DD DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(15,15))
    //SYSGO    DD DDNAME=SYSLIN
    //SYSIN    DD DISP=SHR,DSN=MY.PROGRAM(ASMTEST1)
    //
    

リンケージエディターはプログラム名をJQALにすればMVSと同じJCLを使えます。ローダーも同じJCLです。
アセンブラーは標準のカタログプロシージャーを提供しています(SYS1.PROCLIB)からそちらも参考にしてください。
          ASMFC,ASMFCG,ASMFCL,ASMFCLG


VOS3アセンブラーJCLサンプル

    //*********************************************************************
    //*        Sample JCL for VOS3 ASSEMBLER
    //*        =============================
    //*        JOAXASM - XASM/E2(VOS3 EXTEND ASSEMBLER)
    //*        JLAASSY - VOS3 STD ASSEMBLER
    //*********************************************************************
    //ASM      EXEC PGM=JOAXASM
    //         PARM=('OBJ,NODECK,XREF(SHORT),TERM')
    //SYSPRINT DD SYSOUT=*
    //SYSTERM  DD SYSOUT=*
    //SYSLIB   DD DISP=SHR,DSN=MY.PROGRAM,DCB=BLKSIZE=32720
    //         DD DISP=SHR,DSN=SYS1.MACLIB
    //         DD DISP=SHR,DSN=SYS1.MODMAC
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(5,5))
    //SYSLIN   DD DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(15,15))
    //SYSIN    DD DISP=SHR,DSN=MY.PROGRAM(ASMTEST1)
    //
    
    //ASM      EXEC PGM=JLAASSY
    //         PARM=('OBJ,NODECK,XREF(SHORT),TERM')
    //SYSPRINT DD SYSOUT=*
    //SYSTERM  DD SYSOUT=*
    //SYSLIB   DD DISP=SHR,DSN=MY.PROGRAM,DCB=BLKSIZE=32720
    //         DD DISP=SHR,DSN=SYS1.MACLIB
    //         DD DISP=SHR,DSN=SYS1.MODMAC
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,2))
    //SYSUT2   DD UNIT=SYSDA,SPACE=(CYL,(2,2))
    //SYSUT3   DD UNIT=SYSDA,SPACE=(CYL,(2,2))
    //SYSLIN   DD DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(15,15))
    //SYSIN    DD DISP=SHR,DSN=MY.PROGRAM(ASMTEST1)
    //
    

リンケージエディターはプログラム名をJSAXLNKにすればMVSと同じJCLを使えます。
アセンブラーは標準のカタログプロシージャーを提供しています(SYS1.PROCLIB)からそちらも参考にしてください。
          ASMC,ASMCG,ASMCL,ASMCLGまたはXASMC,XASMCG,XASMCL,XASMCLG
XASMCが登録されていれば拡張アセンブラー(JOAXASM)が使えます。こちらを使う方がいいでしょう。JLAASSYは24ビット・モードのプログラム用アセンブラーで、31ビット・モード用命令の一部がアセンブルできない、などがあります。