//ASMCNT JOB 1,NOTIFY=&SYSUID 00001003 //CMPLNK EXEC HLASMCLG 00005000 //C.SYSIN DD * 00009700 ADD TITLE ‘contest program’ 00010000 ADD CSECT 00020000 ADD AMODE 31 00030000 ADD RMODE 24 00040000 * 00050000 *——————————————————————–* 00060000 * * 00070000 * register equates * 00080000 * * 00090000 *——————————————————————–* 00100000 * 00110000 R0 EQU 0 register 0 00120000 BASEREG EQU 12 base register 00130000 SAVEREG EQU 13 save area register 00140000 RETREG EQU 14 caller’s return address 00150000 ENTRYREG EQU 15 entry address 00160000 RETCODE EQU 15 return code 00170000 EJECT 00180000 * 00190000 *——————————————————————–* 00200000 * * 00210000 * standard entry setup, save area chaining, establish * 00220000 * base register and addressibility * 00230000 * * 00240000 *——————————————————————–* 00250000 * 00260000 USING ADD,ENTRYREG establish addressibility 00270000 B SETUP branch around eyecatcher 00280000 DC CL8’ADD’ program name 00290000 DC CL8’&SYSDATE’ program assembled date 00300000 SETUP STM RETREG,BASEREG,12(SAVEREG) save caller’s registers 00310000 BALR BASEREG,R0 establish base register 00320000 DROP ENTRYREG drop initial base register 00330000 USING *,BASEREG establish addressibilty 00340000 LA ENTRYREG,SAVEAREA point to this program save area 00350000 ST SAVEREG,4(,ENTRYREG) save address of caller’s save 00360000 * area 00370000 ST ENTRYREG,8(,SAVEREG) save address of this program 00380000 * save area 00390000 LR SAVEREG,ENTRYREG point to this program savearea 00400000 EJECT 00410000 * 00420000 *——————————————————————–* 00430000 * * 00440000 * program body * 00450000 * * 00460000 *——————————————————————–* 00470000 OPEN (PRTLINE,OUTPUT) Open output file 00480000 MVC LINE(26),MSGX 00482000 PUT PRTLINE,LINE 00483000 MVC LINE,BLANK 00484000 LOOPINIT DS 0H 00490000 SR 2,2 Clear reg 2 00500000 L 2,=F’20’ Store 10 in reg 2 00510004 L 3,=F’1′ Store 1 in reg 3 00520000 * 00530000 LOOP DS 0H 00540000 * 00550000 CVD 3,PACKAREA Convert to decimal, store in packarea 00560000 UNPK OUT,PACKAREA Convert to printable, store in out 00570000 MVC LINE(8),OUT Move characters from out to line 00580000 MVZ LINE+7(1),LINE Move zone bits 00590000 PUT PRTLINE,LINE Put line in output file 00600000 A 3,=F’1′ Add 1 to current total in reg 3 00610000 * 00620000 BCT 2,LOOP Subtract 1 from reg 2, if not zero 00630000 * then go to LOOP label 00640000 CLOSE (PRTLINE) Close output file 00650000 * 00660000 *——————————————————————–* 00670000 * * 00680000 * standard exit – restore caller’s registers and * 00690000 * return to caller * 00700000 * * 00710000 *——————————————————————–* 00720000 * 00730000 EXIT DS 0H halfword boundary alignment 00740000 L SAVEREG,4(,SAVEREG) restore caller’s save area addr 00750000 L RETREG,12(,SAVEREG) restore return address register 00760000 LM R0,BASEREG,20(SAVEREG) restore all regs. except reg15 00770000 BR RETREG return to caller 00780000 EJECT 00790000 * 00800000 *——————————————————————–* 00810000 * * 00820000 * storage and constant definitions. * 00830000 * print output definition. * 00840000 * * 00850000 *——————————————————————–* 00860000 * 00870000 LINE DS 0CL80 00880000 DC C’ ‘ 00890000 DC CL79’ ‘ 00900000 PRTLINE DCB DSORG=PS,DDNAME=PRTLINE,MACRF=PM, X00910000 RECFM=FB,LRECL=80 00920000 SUM DC P’01’ 00930000 ONE DC P’01’ 00940000 TOT DS PL2 00950000 OUT DC X’4040404040404040′ 00960000 MSGX DC CL26’Hi! I can count very fast.’ 00962000 BLANK DC CL80” 00963000 PACKAREA DS CL8 00970000 SAVEAREA DC 18F’-1′ register save area 00980000 END ADD 00990000 //G.PRTLINE DD DSN=&SYSUID..OUTPUT(MYOUTPUT),DISP=SHR 01000002

Found something interesting ?

• On-time delivery guarantee
• PhD-level professional writers
• Free Plagiarism Report

• 100% money-back guarantee
• Absolute Privacy & Confidentiality
• High Quality custom-written papers

Grab your Discount!

25% Coupon Code: SAVE25
get 25% !!