PARAMETER ILLUSTRATION
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
000000 2 P1 START
000000 05C0 3 BALR 12,0
00002 4 USING *,12
5 * YOUR PROGRAM GOES HERE
6 * OBJECTIVE: ANOTHER EXAMPLE TO ILLUSTRATE PARAMETERS
7 * WE USE A MULTIPLY ROUTINE THAT DOES THE MULTIPLICATION BY
8 * SUCCESSIVE ADDITIONS
9 *
10 * A:=1
11 * B:=2
12 * CALL MULT(A,B,C) C:=A*B
13 * E:=6
14 * CALL MULT(E,C,F) F:=E*C
15 * G:=7
16 * CALL MULT(G,F,H) H:=G*F
17 *
18 * MULT: PROCEDURE (Q,R,VAR S)
19 * S:=Q*R BY SUCCESSIVE ADDITIONS
20 * END BLAH
000002 5810 C0EE 000F0 21 L 1,=F'1'
000006 5010 C082 00084 22 ST 1,A
00000A 5820 C0F2 000F4 23 L 2,=F'2'
00000E 5020 C086 00088 24 ST 2,B
25 * NOW LOAD UP PARAMETER
CONTROL BLOCK
000012 5810 C082 00084 26 L 1,A
000016 5010 C0A2 000A4 27 ST 1,PCB+0
00001A 5810 C086 00088 28 L 1,B
00001E 5010 C0A6 000A8 29 ST 1,PCB+4
000022 4110 C08A 0008C 30 LA 1,C
000026 5010 C0AA 000AC 31 ST 1,PCB+8
00002A 4110 C0A2 000A4 32 LA 1,PCB
33 * NOW WE CAN ACTUALLY CALL THE SUBROUTINE
00002E 4550 C0AE 000B0 34 BAL 5,MULT
35 * BACK FROM SUBROUTINE
000032 5810 C0F6 000F8 36 L 1,=F'6'
000036 5010 C092 00094 37 ST 1,E
38 * NOW LOAD UP PARAMETER CONTROL BLOCK
00003A 5810 C092 00094 39 L 1,E
00003E 5010 C0A2 000A4 40 ST 1,PCB+0
000042 5810 C08A 0008C 41 L 1,C
000046 5010 C0A6 000A8 42 ST 1,PCB+4
00004A 4110 C096 00098 43 LA 1,F
00004E 5010 C0AA 000AC 44 ST 1,PCB+8
i000052 4110 C0A2 000A4 45 LA 1,PCB
PARAMETER ILLUSTRATION
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
47 * NOW WE CAN ACTUALLY CALL THE SUBROUTINE
48 *
000056 4550 C0AE 000B0 49 BAL 5,MULT
50 * BACK FROM SUBROUTINE
00005A 5810 C0FA 000FC 51 L 1,=F'7'
00005E 5010 C09A 0009C 52 ST 1,G
53 * NOW LOAD UP PARAMETER CONTROL BLOCK
000062 5810 C09A 0009C 54 L 1,G
000066 5010 C0A2 000A4 55 ST 1,PCB+0
00006A 5810 C096 00098 56 L 1,F
00006E 5010 C0A6 000A8 57 ST 1,PCB+4
000072 4110 C09E 000A0 58 LA 1,H
000076 5010 C0AA 000AC 59 ST 1,PCB+8
00007A 4110 C0A2 000A4 60 LA 1,PCB
61 * NOW WE CAN ACTUALLY CALL THE SUBROUTINE
62 *
00007E 4550 C0AE 000B0 63 BAL 5,MULT
000082 07FE 64 BR 14
65 *
000084 66 A DS F
000088 67 B DS F
00008C 68 C DS F
000090 69 D DS F
000094 70 E DS F
000098 71 F DS F
00009C 72 G DS F
0000A0 73 H DS F
0000A4 74 PCB DS 3F PARAMETER CONTROL BLOCK FOR MULT
75 * FIRST WORD (+0) CONTAINS FIRST THING TO ADD
76 * SECOND WORD (+4) CONTAINS SECOND THING TO ADD
i 77 * THIRD WORD (+8) CONTAINS ADDRESS OF PLACE TO PUT ANSWER PARAMETER ILLUSTRATION
LOC OBJECT CODE ADDR1 ADDR2 STMT SOURCE STATEMENT
000B0 79 MULT EQU *
80 * ON ENTRY R1 CONTAINS ADDRESS OF PARAMETER CONTROL BLOCK
0000B0 5840 1000 00000 81 L 4,0(0,1)
0000B4 5040 C0E2 000E4 82 ST 4,MULTA
83 * NOTE THAT THERE IS NO SUCH CONCEPT AS A LOCAL
84 * VARIABLE IN ASSEMBLER, UNLESS WE USE SEPARATE
85 * COMPILATION
0000B8 5840 1004 00004 86 L 4,4(0,1) R4 NOW CONTAINS THE SUM
0000BC 5040 C0E6 000E8 87 ST 4,MULTB
0000C0 1B66 88 SR 6,6 R6 CONTAINS THE COUNT
0000C2 1B77 89 SR 7,7 R7 CONTAINS THE SUM SO FAR OF A'S
000C4 90 MULT1 EQU *
0000C4 5960 C0E6 000E8 91 C 6,MULTB
0000C8 4780 C0D6 000D8 92 BE MULT2
0000CC 5A70 C0E2 000E4 93 A 7,MULTA
0000D0 5A60 C0EE 000F0 94 A 6,=F'1'
0000D4 47F0 C0C2 000C4 95 B MULT1
000D8 96 MULT2 EQU *
0000D8 5820 1008 00008 97 L 2,8(0,1) R2 NOW CONTAINS ADDRESS OF PLACE TO PUT
0000DC 5070 2000 00000 98 ST 7,0(0,2) PRODUCT
0000E0 07F5 99 BR 5
MULT ENDS
100 *
0000E4 101 MULTA DS F
0000E8 102 MULTB DS F
103 END
0000F0 00000001 104 =F'1'
0000F4 00000002 105 =F'2'
0000F8 00000006 106 =F'6'
0000FC 00000007 107 =F'7'