DEMONSTRATE MACROS, A SIMPLE ADDITION MACRO
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
2 MACRO
3 ADD &A,&B,&C
4 * ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
5 LCLC &FO
6 LCLB &BFLAG
7 &FO SETC '&A'
8 AIF (K'&A EQ1).SEQ03
9 AIF (NOT((K'&A EQ 2)AND('&A'(2,2) GE '0')AND('&A'(2,2) LE '9'))
AND('&A'(1,1) EQ 'R'))).SEQ01
10 &FO SETC '&A'(2,2)
11 &BFLAG SETB 1
12 AGO .SEQ03
13 .SEQ01 ANOP
14 AIF (NOT((K'&A EQ 3)AND('&A'(2,3) GE '10')AND X
('&A'(2,3)LE '15')AND('&A'(1,1) EQ 'R'))).SEQ02
15 &FO SETC '&A'(2,3)
16 &BFLAG SETB 1
17 AGO .SEQ03
18 .SEQ02 ANOP
19 .SEQ03 ANOP
20 AIF (&BFLAG).SEQ04
21 L 0,&A
22 AGO .SEQ05
23 .SEQ04 ANOP
24 LR 0,&FO
25 .SEQ05 ANOP
26 A 0,&B
27 ST 0,&C
28 MEND
000000 29 P1 START
000000 05C0 30 BALR 12,0
00002 31 USING *,12
32 * YOUR PROGRAM GOES HERE
33 ADD A,B,C
34+* ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
000002 5800 C042 00044 35+ L 0,A
000006 5A00 C046 00048 36+ A 0,B
00000A 5000 C04A 0004C 37+ ST 0,C
00000E 5850 C04E 00050 38 L 5,D
000012 58D0 C06E 00070 39 L 13,=F'100'
40 ADD R5,E,F
41+* ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
000016 1805 42+ LR 0,5
000018 5A00 C05A 0005C 43+ A 0,E
00001C 5000 C05E 00060 44+ ST 0,F
45 ADD D5,E,F1
46+* ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
000020 5800 C052 00054 47+ L 0,D5
000024 5A00 C05A 0005C 48+ A 0,E
000028 5000 C062 00064 49+ ST 0,F1
50 ADD R13,E,F2
51+* ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
00002C 180D 52+ LR 0,13
00002E 5A00 C05A 0005C 53+ A 0,E
i000032 5000 C066 00068 54+ ST 0,F2
DEMONSTRATE MACROS, A SIMPLE ADDITION MACRO
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
55 ADD D13,E,F3
56+* ADDS A TO B GIVING C, ASSUMES REGISTER 0 IS AVAILABLE
000036 5800 C056 00058 57+ L 0,D13
00003A 5A00 C05A 0005C 58+ A 0,E
00003E 5000 C06A 0006C 59+ ST 0,F3
000042 07FE 60 BR 14
61 * END OF YOUR PROGRAM
000044 00000003 62 A DC F'3'
000048 00000004 63 B DC F'4'
00004C 64 C DS F
000050 00000008 65 D DC F'8'
000054 00000005 66 D5 DC F'5'
000058 0000000D 67 D13 DC F'13'
00005C 00000004 68 E DC F'4'
000060 69 F DS F
000064 70 F1 DS F
000068 71 F2 DS F
00006C 72 F3 DS F
73 END
000070 00000064 74 =F'100'