//ASMLEARN JOB (ACCT),NAME,NOTIFY=&SYSUID,TIME=(,20),LINES=(10,CANCEL) //********************************************************************* //ASMACL EXEC ASMACL,COND.L=(8,LE,C), // PARM.C='ASA,TEST,US(WARN(11))',PARM.L='MAP,LET,LIST,TEST' //C.SYSIN DD * *********************************************************************** * z/Architecture & z/OS Assembler Learning Program * * ===================================================== * * Program member name GO is fixed. That is created by * * ASMCL/ASMCLG HLASM Standard Procedure. * *********************************************************************** * *----------------------------------* * * HOUSE-KEEPING PROCEDURE * * *----------------------------------* MAINPROG CSECT , DEFINE CONTROL SECTION USING *,R12 DEFINE OUR BASE REGISTER=12 SAVE (14,12),, SAVE CALLER REGISTERS + 'MAINPROG(ALP:z/OS Assembler Learning Program)BUILD:&SYS+ DATE-&SYSTIME' LR R12,R15 GR12 --> OUR BASE ADDRESS LR R15,R13 COPY CALLER SAVEAREA ADDRESS LA R13,GPRSAVEA LOAD OUR RSA(SAVEAREA) ADDRESS ST R15,4(,R13) SAVE CALLER'S SAVEAREA ADDRESS + INTO OUR SAVEAREA ST R13,8(,R15) CHAIN OUR RSA INTO CALLER'S + SAVEAREA FOR SA TRACE L R1,0(,R1) LOAD EXEC PARM FIELD ADDRESS LH R0,0(,R1) GR0 ---> PARM TEXT LENGTH LA R1,2(,R1) GR1 ---> BEGIN OF PARM TEXT B MAINPROC DO MAINLINE PROCESSING DC XL150'00' (FILLER FOR TEST CMD STEP-RUN) SPACE , *********************************************************************** * AVAILABLE YOUR ASSEMBLER LANGUAGE CODE AT HERE. * * ===================================================== * * GR0 ---> EXEC PARAMETER TEXT LENGTH * * GR1 ---> EXEC PARAMETER TEXT ADDRESS * * GR13 --> OUR REGISTER SAVEAREA(RSA) * *********************************************************************** MAINPROC DS 0H * ここに実行したい機械命令コードを書いて下さい。 SLR R15,R15 CLEAR COMPLETION CODE(CC=0) *********************************************************************** * *----------------------------------* * * PROGRAM EXIT PROCEDURE * * * ============================== * * * GR15 --> COMPLETION CODE(RETCD * * *----------------------------------* EXITPROC DS 0H EXIT PROCEDURE AT HERE L R13,4(,R13) LOAD CALLER'S SAVEAREA ADDRESS RETURN (14,12),T,RC=(15) RESTORE CALLER'S REGISTERS + AND RETURN TO CALLER WITH RETCD *********************************************************************** * DATA AREA * *********************************************************************** GPRSAVEA DS 18F STANDARD GPR SAVEAREA(18WORDS) *---------------------------------------------------------------------* * AVAILABLE YOUR ASSEMBLER LANGUAGE DATA AT HERE. * *---------------------------------------------------------------------* DATAAREA DS 0D USER DATA AREA START AT HERE * ここに機械命令で参照するデータを書いて下さい。 *---------------------------------------------------------------------* WORKAREA DS XL256 --- 256BYTES WORKING AREA --- *---------------------------------------------------------------------* YREGS , EXPAND GPR EQUATIONS(z/OS ONLY) END REPRO PAGE MAINPROG END //********************************************************************* //G EXEC PGM=IKJEFT01,COND=((8,LE,ASMACL.C),(8,LE,ASMACL.L)) //STEPLIB DD DISP=(OLD,DELETE),DSN=&&GOSET //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * TEST *(GO) 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' AT MAINPROC:EXITPROC + (L 0R:15R;L DATAAREA:WORKAREA XC;L WORKAREA XC L(032);GO) GO // // //