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'