Sei sulla pagina 1di 9

PROG #1 HELLO WORLD: HELLO */ * CSECT THE NAME OF THIS PROGRAM IS 'HELLO' /* REGISTER 15 POINTS HERE ON ENTRY FROM

FROM OP/SYS OR CALLER. USING *,12 TELL ASSEMBLER WHAT REGISTER WE ARE USING FOR PGM. BASE STM 14,12,12(13) SAVE REGISTERS 14,15,AND 0 THRU 12 IN CALLERS SAVE AREA LR 12,15 SET UP BASE REGISTER WITH PROGRAMS ENTRY POINT ADDRESS LA 15,SAVE NOW POINT AT OUR OWN SAVE AREA ST 15,8(13) SET FORWARD CHAIN ST 13,4(15) SET BACK CHAIN LR 13,15 NOW SWITCH TO NEW SAVE AREA WTO * L LM SR BR * SAVE PROG #2 USING FILES (HELLO WORLD): HELLO CSECT STM LR USING LA ST ST LR OPEN MVC MVC PUT CLOSE * L LM SR BCR * * OUTLINE * BLANKS * REGSAVE SYSOUT DC DC DS DCB END 13,4(13) 14,12,12(13) 15,15 B'1111',14 CL80' ' CL80' ' RESTORE R13 TO ORIGINAL RESTORE THE REGS EVERYTHING WENT OK RETURN TO THE SYSTEM DEFINE AND INITIALIZE USED TO CLEAR OUTPUT LINE X 14,12,12(13) 12,15 LABEL,12 11,REGSAVE 13,4(11) 11,8(13) 13,11 (SYSOUT,OUTPUT) OUTLINE(80),BLANKS OUTLINE(11),=C'HELLO SYSOUT,OUTLINE (SYSOUT) SAVE THE REGISTERS MAKE R12 THE BASE FINISH THE JOB POINT TO OUR SAVE AREA SAVE CURRENT R13 INFORM THE OS ESTABLISH NEW R13 OPEN OUTPUT FILE CLEAR THE OUTPUT LINE WORLD' PRINT OUTLINE DS END 13,4(13) 14,12,12(13) 15,15 14 18A HELLO POINT AT CALLER'S-PROVIDED SAVE AREA RESTORE REGISTERS AS ON ENTRY SET REGISTER 15 TO 0 SO THAT THE RETURN CODE IS ZERO RETURN TO CALLER DEFINE 18 FULL WORDS FOR CALLING THIS IS THE END OF THE PROGRAM X 'HELLO WORLD' WRITE TO OPERATOR (OPERATING SYSTEM MACRO)

X X X X

18F DSORG=PS,DDNAME=SYSOUT, MACRF=PM,RECFM=FB,LRECL=80,BLKSIZE=80 LABEL

Compile JCL & RUN JCL //U271538A JOB NOTIFY=&SYSUID // SET MEM=NEWS //* ONE STEP BUILD - COMPILE, LINK AND EXECUTE //* //U271538A EXEC HLASMCL //C.SYSIN DD DSN=U271538.ASSM.PDS(&MEM),DISP=SHR

//L.SYSLMOD DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* // IF RC = 0 THEN //* //DORUN EXEC PGM=NEWS //STEPLIB DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* //SYSOUT DD SYSOUT=* // ELSE // ENDIF OUTPUT ********************************* TOP OF DATA ******************************* HELLO WORLD ******************************** BOTTOM OF DATA ***************************** PROG #3: MYNAME: LABEL CSECT STM LR USING LA ST ST LR MVC MVC WTO L LM SR BCR * MYNAME * REGSAVE DC DS END 14,12,12(13) 12,15 LABEL,12 11,REGSAVE 13,4(11) 11,8(13) 13,11 SAVE THE REGISTERS MAKE R12 THE BASE FINISH THE JOB POINT TO OUR SAVE AREA SAVE CURRENT R13 INFORM THE OS ESTABLISH NEW R13

* WTOA * MYNAME(15),=C'UTPAL KUMAR PAL' WTOA+8(15),MYNAME 'XXXXXXXXXXXXXXX IS MYNAME' 13,4(13) 14,12,12(13) 15,15 B'1111',14 CL80' ' 18F LABEL RESTORE R13 TO ORIGINAL RESTORE THE REGS EVERYTHING WENT OK RETURN TO THE SYSTEM DEFINE AND INITIALIZE

COMPILE & RUN JCL ***************************** Top of Data ****************************** //U271538A JOB NOTIFY=&SYSUID // SET MEM=MYNAME //* ONE STEP BUILD - COMPILE, LINK AND EXECUTE //* //U271538A EXEC HLASMCL //C.SYSIN DD DSN=U271538.ASSM.PDS(&MEM),DISP=SHR //L.SYSLMOD DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* // IF RC = 0 THEN //* //DORUN EXEC PGM=MYNAME //STEPLIB DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* //SYSOUT DD SYSOUT=* // ELSE // ENDIF ************************************************************************ SPOOL: SDSF OUTPUT DISPLAY U271538A JOB04454 81 DSID 4 LINE 0 COLUMNS 02-

COMMAND INPUT ===> SCROLL ===> PAGE ********************************* TOP OF DATA ******************************* STMT NO. MESSAGE 3 IEFC001I PROCEDURE HLASMCL WAS EXPANDED USING SYSTEM LIBRARY CPAC.PROC 18 IEF686I DDNAME REFERRED TO ON DDNAME KEYWORD IN PRIOR STEP WAS NOT RES ICH70001I U271538 LAST ACCESS AT 16:57:51 ON WEDNESDAY, NOVEMBER 30, 2011 IEF236I ALLOC. FOR U271538A C U271538A IEF237I E370 ALLOCATED TO SYSLIB IGD101I SMS ALLOCATED TO DDNAME (SYSUT1 ) DSN (SYS11334.T171121.RA000.U271538A.SYSUT1.H01 ) STORCLAS (STANDARD) MGMTCLAS ( ) DATACLAS ( ) VOL SER NOS= CT3T17 IEF237I JES2 ALLOCATED TO SYSPRINT IGD101I SMS ALLOCATED TO DDNAME (SYSLIN ) DSN (SYS11334.T171121.RA000.U271538A.OBJ.H01 ) STORCLAS (STANDARD) MGMTCLAS ( ) DATACLAS ( ) VOL SER NOS= CT3T15 IGD103I SMS ALLOCATED TO DDNAME SYSIN IEF142I U271538A C U271538A - STEP WAS EXECUTED - COND CODE 0000 IEF285I SYS1.MACLIB KEPT IEF285I VOL SER NOS= CT3RS1. IGD105I SYS11334.T171121.RA000.U271538A.SYSUT1.H01 DELETED, DDNAME=SYSUT1 IEF285I U271538.U271538A.JOB04454.D0000101.? SYSOUT SDSF OUTPUT DISPLAY U271538A JOB04454 DSID 4 LINE 22 COLUMNS 0281 COMMAND INPUT ===> SCROLL ===> PAGE IGD106I SYS11334.T171121.RA000.U271538A.OBJ.H01 PASSED, DDNAME=SYSLIN IGD104I U271538.ASSM.PDS RETAINED, DDNAME=SYSIN IEF373I STEP/C /START 2011334.1711 IEF032I STEP/C /STOP 2011334.1711 CPU: 0 HR 00 MIN 00.11 SEC SRB: 0 HR 00 MIN 00.00 SEC VIRT: 220K SYS: 272K EXT: 32768K SYS: 14668K IEF236I ALLOC. FOR U271538A L U271538A IGD103I SMS ALLOCATED TO DDNAME SYSLIN IEF237I DMY ALLOCATED TO IGD103I SMS ALLOCATED TO DDNAME SYSLMOD IGD101I SMS ALLOCATED TO DDNAME (SYSUT1 ) DSN (SYS11334.T171121.RA000.U271538A.SYSUT1.H01 ) STORCLAS (STANDARD) MGMTCLAS ( ) DATACLAS ( ) VOL SER NOS= CT3T17 IEF237I JES2 ALLOCATED TO SYSPRINT IEF142I U271538A L U271538A - STEP WAS EXECUTED - COND CODE 0000 IGD105I SYS11334.T171121.RA000.U271538A.OBJ.H01 DELETED, DDNAME=SYSLIN IGD104I U271538.ASSM.LOADLIB RETAINED, DDNAME=SYSLMOD IGD105I SYS11334.T171121.RA000.U271538A.SYSUT1.H01 DELETED, DDNAME=SYSUT1 IEF285I U271538.U271538A.JOB04454.D0000102.? SYSOUT IEF373I STEP/L /START 2011334.1711 IEF032I STEP/L /STOP 2011334.1711 SDSF OUTPUT DISPLAY U271538A JOB04454 DSID 4 LINE 44 COLUMNS 0281 COMMAND INPUT ===> SCROLL ===> PAGE CPU: 0 HR 00 MIN 00.06 SEC SRB: 0 HR 00 MIN 00.00 SEC VIRT: 88K SYS: 260K EXT: 1640K SYS: 14728K IEF236I ALLOC. FOR U271538A DORUN IGD103I SMS ALLOCATED TO DDNAME STEPLIB IEF237I JES2 ALLOCATED TO SYSOUT UTPAL KUMAR PAL IS MYNAME IEF142I U271538A DORUN - STEP WAS EXECUTED - COND CODE 0000 IGD104I U271538.ASSM.LOADLIB RETAINED, DDNAME=STEPLIB IEF285I U271538.U271538A.JOB04454.D0000103.? SYSOUT IEF373I STEP/DORUN /START 2011334.1711 IEF032I STEP/DORUN /STOP 2011334.1711 CPU: 0 HR 00 MIN 00.01 SEC SRB: 0 HR 00 MIN 00.00 SEC

VIRT: 8K SYS: 256K EXT: 0K SYS: 14804K JOB/U271538A/START 2011334.1711 JOB/U271538A/STOP 2011334.1711 CPU: 0 HR 00 MIN 00.18 SEC SRB: 0 HR 00 MIN 00.00 SEC ******************************** BOTTOM OF DATA ***************************** IEF375I IEF033I PROG # 4 ADDITION ADD CSECT STM LR USING LA ST ST LR WTO L L AR ST MVC WTO L LM SR BCR * A B C REGSAVE DC DC DS DS END 14,12,12(13) 12,15 ADD,12 11,REGSAVE 13,4(11) 11,8(13) 13,11 'OPEN SUCCESSFUL' 3,A 4,B 3,4 3,C WTOA+8(4),C 'XXXX IS C' 13,4(13) 14,12,12(13) 15,15 B'1111',14 B'0001' B'0010' D 18F SAVE THE REGISTERS MEKE R12 THE BASE REGISTER FINISH THE JOB POINT TO SAVE AREA SAVE CURRENT R13 INFORM THE OS ESTABLISH NEW R13

PRINT OUTLINE RESTORE R13 TO ORIGINAL RESTORE THE REGS EVERYTHING WENT OK RETURN TO THE SYSTEM DEFINING AND INITIALIZE A DEFINING AND INITIALIZE B

WTOA *

PROG #4: FILES WITHOUT INPUT FILE: FILES CSECT USING STM LR LA ST ST LR OPEN WTO * * GET MVC MVC PUT WTO *,12 14,12,12(13) 12,15 15,SAVE 15,8(13) 13,4(15) 13,15 TELL ASSEMBLER ABT REGISTERS IN PGM SAVE REGISTERS SET UP BASE REGISTER NOW POINT AT OUR OWN SAVE AREA SET FORWARD CHAIN SET BACK CHAIN NOW SWITCH TO NEW SAVE AREA

* (OPT,(OUTPUT)) OPEN O/P FILE 'OPEN SUCCESSFUL' IREC ONAME,INAME OPH,IPH OPT,OREC 'SUCCESS' MOVE NAME FROM I/P TO O/P FILE MOVE PH NO FROM I/P TO O/P WRITE REPORT LINE CLOSE O/P FILE POINT AT CALLER'S-PROVIDED SAVE AREA RESTORE REGISTERS AS ON ENTRY SET REGISTER 15 TO 0 RETURN TO CALLER X

* CLOSE OPT * L LM SR BCR * * OPT * IREC 13,4(13) 14,12,12(13) 15,15 B'1111',14

FILE DEFINATION DCB DSORG=PS,DDNAME=DD1,MACRF=PM,RECFM=FB, LRECL=80,BLKSIZE=800 INPUT FILE DEFINATION DS 0CL19

INAME IPH * * OREC ONAME OPH * SAVE JCL: COMPILE:

DC CL9'UTPAL PAL' DC CL10'9657550063' DC CL63' ' OUTPUT FILE DEFINATION DS 0CL80 DS CL9 NAME 1-9 DC CL3' ' DS CL10 NO 10-20 DC CL60' ' DS END 18A FILES DEFINE 18 FULL WORDS FOR CALLING THIS IS THE END OF THE PROGRAM

//U271538A JOB NOTIFY=&SYSUID // SET MEM=FILE //* ONE STEP BUILD - COMPILE AND LINK //* //U271538A EXEC HLASMCL //C.SYSIN DD DSN=U271538.ASSM.PDS(&MEM),DISP=SHR //L.SYSLMOD DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* // RUN JCL: //U271538R JOB NOTIFY=&SYSUID //*************************************************************** //*STEP1 EXEC PGM=IEFBR14 //*DD1 DD DSN=U271538.NEH.PS,DISP=(NEW,CATLG,DELETE), //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), //* SPACE=(CYL,(2,1),RLSE) //*************************************************************** //STEP2 EXEC PGM=FILES //STEPLIB DD DISP=SHR,DSN=U271538.ASSM.LOADLIB //DD1 DD DSN=U271538.XYZ.PS,DISP=MOD //SYSOUT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //CEEDUMP DD SYSOUT=* // OUTPUT:

PROG # 5 FILES WITH INPUT AND OUTPUT: FILES CSECT USING STM LR LA ST ST LR OPEN WTO OPEN WTO * LOOP GET MVC *,12 14,12,12(13) 12,15 15,SAVE 15,8(13) 13,4(15) 13,15 TELL ASSEMBLER ABT REGISTERS IN PGM SAVE REGISTERS SET UP BASE REGISTER NOW POINT AT OUR OWN SAVE AREA SET FORWARD CHAIN SET BACK CHAIN NOW SWITCH TO NEW SAVE AREA

* (INPT,(INPUT)) OPEN I/P FILE 'OPEN1' (OPT,(OUTPUT)) OPEN O/P FILE 'OPEN2' INPT,IREC ONAME,INAME READ SINGLE RECORD AT A TIME MOVE NAME FROM I/P TO O/P FILE

MVC PUT B WTO * EOJ * L LM SR BCR WTO * * INPT OPT * IREC INAME IPH * OREC ONAME OPH * SAVE

OPH,IPH OPT,OREC LOOP 'SUCCESS1'

MOVE PH NO FROM I/P TO O/P WRITE REPORT LINE

CLOSE INPT CLOSE OPT WTO 'SUCCESS2' 13,4(13) 14,12,12(13) 15,15 B'1111',14 'SUCCESS3'

CLOSE I/P FILE CLOSE O/P FILE POINT AT CALLER'S-PROVIDED SAVE AREA RESTORE REGISTERS AS ON ENTRY SET REGISTER 15 TO 0 RETURN TO CALLER

FILE DEFINATION DCB DSORG=PS,MACRF=(GM),DDNAME=DD1,EODAD=EOJ, RECFM=FB,LRECL=80,BLKSIZE=800 DCB DSORG=PS,MACRF=(PM),DDNAME=DD2,RECFM=FB, LRECL=80,BLKSIZE=800 WTO 'SUCCESS4' INPUT FILE DEFINATION DS 0CL80 DS CL7 NAME 1-7 DS CL10 PH NO 8-17 DC CL63' ' OUTPUT FILE DEFINATION DS 0CL80 DS CL7 NAME 1-7 DC CL3' ' DS CL10 PH NO 10-20 DC CL63' ' DS END 18A FILES DEFINE 18 FULL WORDS FOR CALLING THIS IS THE END OF THE PROGRAM

X X

COMPILE JCL: //U271538A JOB NOTIFY=&SYSUID // SET MEM=FILES //* ONE STEP BUILD - COMPILE, LINK AND EXECUTE //* //U271538A EXEC HLASMCL //C.SYSIN DD DSN=U271538.ASSM.PDS(&MEM),DISP=SHR //L.SYSLMOD DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* // RUN JCL: //U271538R JOB NOTIFY=&SYSUID //*************************************************************** //*STEP1 EXEC PGM=IEFBR14 //*DD1 DD DSN=U271538.NEH.PS,DISP=(NEW,CATLG,DELETE), //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), //* SPACE=(CYL,(2,1),RLSE) //*************************************************************** //STEP2 EXEC PGM=FILES //STEPLIB DD DISP=SHR,DSN=U271538.ASSM.LOADLIB //DD1 DD DSN=U271538.CDE.PS,DISP=SHR //DD2 DD DSN=U271538.XYZ.PS,DISP=MOD //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), //* SPACE=(CYL,(2,1),RLSE) //SYSOUT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //CEEDUMP DD SYSOUT=* // INPUT:

OUTPUT:

PROG # 6 FORMATTED FILES FILES CSECT USING STM LR LA ST ST LR OPEN WTO OPEN WTO PUT PUT PUT PUT * LOOP GET MVC MVC MVC MVC PUT B WTO *,12 14,12,12(13) 12,15 15,SAVE 15,8(13) 13,4(15) 13,15 TELL ASSEMBLER ABT REGISTERS IN PGM SAVE REGISTERS SET UP BASE REGISTER NOW POINT AT OUR OWN SAVE AREA SET FORWARD CHAIN SET BACK CHAIN NOW SWITCH TO NEW SAVE AREA

* (INPT,(INPUT)) OPEN I/P FILE 'OPEN1' (OPT,(OUTPUT)) OPEN O/P FILE 'OPEN2' OPT,HD1 OPT,HD2 OPT,HD3 OPT,HD4 INPT,IREC READ SINGLE RECORD AT A TIME OFIRST,IFIRST MOVE FIRST NAME OFIRST+7(3),=CL3' ' OLAST,ILAST MOVE LAST NAME OPH,IPH MOVE PH NO OPT,OREC WRITE REPORT LINE LOOP 'SUCCESS1' CLOSE I/P FILE CLOSE O/P FILE POINT AT CALLER'S-PROVIDED SAVE AREA RESTORE REGISTERS AS ON ENTRY SET REGISTER 15 TO 0 RETURN TO CALLER

* EOJ *

CLOSE INPT CLOSE OPT WTO 'SUCCESS2' L LM SR BCR WTO 13,4(13) 14,12,12(13) 15,15 B'1111',14 'SUCCESS3'

* * INPT OPT

FILE DEFINATION DCB DSORG=PS,MACRF=(GM),DDNAME=DD1,EODAD=EOJ, RECFM=FB,LRECL=80,BLKSIZE=800 DCB DSORG=PS,MACRF=(PM),DDNAME=DD2,RECFM=FB,

X X

LRECL=80,BLKSIZE=800 WTO 'SUCCESS4' * INPUT FILE DEFINATION IREC DS 0CL72 IFIRST DS CL7 FIRST NAME 1-7 ILAST DS CL9 LAST NAME 8-16 IPH DS CL10 PHONE NO DC CL46' ' * OUTPUT FILE DEFINATION * HEADINGS DEFINITIONS * HD1 DS 0CL72 DC CL40' FRIENDS CONTACTS ' DC CL32' ' HD2 DS 0CL72 DC CL72' ' HD3 DS 0CL72 DC CL40'FIRST NAME LAST NAME PHONE NO ' DC CL32' ' HD4 DS 0CL72 DC CL40'----------------------------' DC CL32' ' * OREC DS 0CL72 OFIRST DC CL10' ' FIRST NAME 1-10 DC CL5' ' OLAST DC CL9' ' LAST NAME 16-24 DC CL5' ' OPH DS CL11' ' PHONE NO 31-41 DC CL32' ' * SAVE DS 18A DEFINE 18 FULL WORDS FOR CALLING END FILES THIS IS THE END OF THE PROGRAM COMPILE JCL: //U271538A JOB NOTIFY=&SYSUID // SET MEM=INFO //* ONE STEP BUILD - COMPILE, LINK AND EXECUTE //* //U271538A EXEC HLASMCL //C.SYSIN DD DSN=U271538.ASSM.PDS(&MEM),DISP=SHR //L.SYSLMOD DD DSN=U271538.ASSM.LOADLIB(&MEM),DISP=OLD //* // RUN JCL: //U271538R JOB NOTIFY=&SYSUID //*************************************************************** //*STEP1 EXEC PGM=IEFBR14 //*DD1 DD DSN=U271538.NEH.PS,DISP=(NEW,CATLG,DELETE), //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), //* SPACE=(CYL,(2,1),RLSE) //*************************************************************** //STEP2 EXEC PGM=INFO //STEPLIB DD DISP=SHR,DSN=U271538.ASSM.LOADLIB //DD1 DD DSN=U271538.ABC.PS,DISP=SHR //DD2 DD DSN=U271538.UKP.PS,DISP=MOD //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), //* SPACE=(CYL,(2,1),RLSE) //SYSOUT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //CEEDUMP DD SYSOUT=* // INPUT:

OUTPUT:

Potrebbero piacerti anche