Figure 1 shows the first two pages of an example Enterprise PL/I routine that was compiled with the LIST, MAP and SOURCE options.
5655-H31 IBM(R) Enterprise PL/I for z/OS V3.R6.M0 (Built:20070119)
Options Specified
Install:
Command: s
Line.File Process Statements
1.0 *PROCESS SOURCE LIST MAP;
Install:
5655-H31 IBM(R) Enterprise PL/I for z/OS
Compiler Source
Line.File
2.0
3.0 EXAMPLE: PROC OPTIONS(MAIN);
4.0 DCL EXTR ENTRY EXTERNAL;
5.0 DCL A FIXED BIN(31);
6.0 DCL B(2,2) FIXED BIN(31) STATIC EXTERNAL INIT((4)0);
7.0 DCL C CHAR(20) STATIC INIT('SAMPLE CONSTANT');
8.0 DCL D FIXED BIN(31) STATIC;
9.0 DCL E FIXED BIN(31);
10.0 FETCH EXTR;
11.0 CALL EXTR(A,B,C,D,E);
12.0 DISPLAY(C);
13.0 END;
Figure 2 shows the output generated by the LIST and MAP options for this routine, including the pseudo-assembly listing, the external symbol dictionary and reference, the storage offset listing and the static and automatic storage maps. The sections following this example describe the contents of each type of listing.
OFFSET OBJECT CODE LINE# FILE# P S E U D O A S S E M B L Y L I S T I N G
Timestamp and Version Information
000000 F2F0 F0F7 =C'2007' Compiled Year
000004 F0F2 F0F1 =C'0201' Compiled Date MMDD
000008 F1F5 F3F2 F5F0 =C'153250' Compiled Time HHMMSS
00000E F0F3 F0F6 F0F0 =C'030600' Compiler Version
000014 002C **** Service String 20070122
Timestamp and Version End
5655-H31 IBM(R) Enterprise PL/I for z/OS : EXAMPLE
OFFSET OBJECT CODE LINE# FILE# P S E U D O A S S E M B L Y L I S T I N G
000000 000003 | EXAMPLE DS 0D
000000 47F0 F024 000003 | B 36(,r15)
000004 01C3C5C5 CEE eyecatcher
000008 000000C8 DSA size
00000C 00000180 =A(PPA1-EXAMPLE)
000010 47F0 F001 000003 | B 1(,r15)
000014 58F0 C31C 000003 | L r15,796(,r12)
000018 184E 000003 | LR r4,r14
00001A 05EF 000003 | BALR r14,r15
00001C 00000000 =F'0'
000020 A7F4 000C 000003 | J *+24
000024 90E8 D00C 000003 | STM r14,r8,12(r13)
000028 58E0 D04C 000003 | L r14,76(,r13)
00002C 4100 E0C8 000003 | LA r0,200(,r14)
000030 5500 C314 000003 | CL r0,788(,r12)
000034 A724 FFF0 000003 | JH *-32
000038 58F0 C280 000003 | L r15,640(,r12)
00003C 90F0 E048 000003 | STM r15,r0,72(r14)
000040 9210 E000 000003 | MVI 0(r14),16
000044 50D0 E004 000003 | ST r13,4(,r14)
000048 18DE 000003 | LR r13,r14
00004A C030 0000 008A 000003 | LARL r3,F'138'
000050 End of Prolog
000050 5860 3002 000000 | L r6,=A(EXAMPLE2)(,r3,2)
000054 C070 0000 0092 000000 | LARL r7,F'146'
00005A 4110 6008 000003 | LA r1,EXTR(,r6,8)
00005E 4100 0000 000003 | LA r0,0
000062 5000 1000 000003 | ST r0,_shadow3(,r1,0)
000066 4110 6008 000010 | LA r1,EXTR(,r6,8)
00006A 5800 1000 000010 | L r0,_shadow2(,r1,0)
00006E 1200 000010 | LTR r0,r0
000070 A774 0012 000010 | JNE @1L2
000074 4100 6018 000010 | LA r0,_Dsc_000002(,r6,24)
000078 4120 6008 000010 | LA r2,EXTR(,r6,8)
00007C 58F0 3006 000010 | L r15,=V(IBMQFRG)(,r3,6)
000080 4110 D098 000010 | LA r1,#MX_TEMP1(,r13,152)
000084 5020 D098 000010 | ST r2,#MX_TEMP1(,r13,152)
000088 1827 000010 | LR r2,r7
00008A 5020 D09C 000010 | ST r2,#MX_TEMP1(,r13,156)
00008E 5000 D0A0 000010 | ST r0,#MX_TEMP1(,r13,160)
000092 05EF 000010 | BALR r14,r15
000094 000010 | @1L2 DS 0H
000094 5800 300A 000011 | L r0,=A(B)(,r3,10)
000098 5000 D0C0 000011 | ST r0,192(,r13)
00009C 4100 6040 000011 | LA r0,_Dsc_000005(,r6,64)
0000A0 5000 D0C4 000011 | ST r0,196(,r13)
0000A4 4100 6028 000011 | LA r0,C(,r6,40)
0000A8 5000 D0B8 000011 | ST r0,184(,r13)
0000AC 4110 6004 000011 | LA r1,_Dsc_000003(,r6,4)
0000B0 5800 1000 000011 | L r0,_shadow1(,r1,0)
0000B4 5000 D0BC 000011 | ST r0,_temp1(,r13,188)
0000B8 4110 6008 000011 | LA r1,EXTR(,r6,8)
0000BC 5800 1000 000011 | L r0,_shadow2(,r1,0)
0000C0 1200 000011 | LTR r0,r0
5655-H31 IBM(R) Enterprise PL/I for z/OS : EXAMPLE
OFFSET OBJECT CODE LINE# FILE# P S E U D O A S S E M B L Y L I S T I N G
0000C2 A774 0012 000011 | JNE @1L3
0000C6 4100 6018 000011 | LA r0,_Dsc_000002(,r6,24)
0000CA 4120 6008 000011 | LA r2,EXTR(,r6,8)
0000CE 58F0 3006 000011 | L r15,=V(IBMQFRG)(,r3,6)
0000D2 4110 D098 000011 | LA r1,#MX_TEMP1(,r13,152)
0000D6 5020 D098 000011 | ST r2,#MX_TEMP1(,r13,152)
0000DA 1827 000011 | LR r2,r7
0000DC 5020 D09C 000011 | ST r2,#MX_TEMP1(,r13,156)
0000E0 5000 D0A0 000011 | ST r0,#MX_TEMP1(,r13,160)
0000E4 05EF 000011 | BALR r14,r15
0000E6 000011 | @1L3 DS 0H
0000E6 4110 6008 000011 | LA r1,EXTR(,r6,8)
0000EA 58F0 1000 000011 | L r15,_shadow2(,r1,0)
0000EE 4100 D0B4 000011 | LA r0,E(,r13,180)
0000F2 1826 000011 | LR r2,r6
0000F4 4140 D0B8 000011 | LA r4,_temp1(,r13,184)
0000F8 4150 D0C0 000011 | LA r5,_temp2(,r13,192)
0000FC 4180 D0B0 000011 | LA r8,A(,r13,176)
000100 4110 D098 000011 | LA r1,#MX_TEMP1(,r13,152)
000104 5080 D098 000011 | ST r8,#MX_TEMP1(,r13,152)
000108 5050 D09C 000011 | ST r5,#MX_TEMP1(,r13,156)
00010C 5040 D0A0 000011 | ST r4,#MX_TEMP1(,r13,160)
000110 5020 D0A4 000011 | ST r2,#MX_TEMP1(,r13,164)
000114 5000 D0A8 000011 | ST r0,#MX_TEMP1(,r13,168)
000118 05EF 000011 | BALR r14,r15
00011A 4120 6010 000012 | LA r2,_Dsc_000001(,r6,16)
00011E 4100 6020 000012 | LA r0,_Dsc_000004(,r6,32)
000122 4140 6028 000012 | LA r4,C(,r6,40)
000126 58F0 300E 000012 | L r15,=V(IBMQJDSB)(,r3,14)
00012A 4110 D098 000012 | LA r1,#MX_TEMP1(,r13,152)
00012E 5040 D098 000012 | ST r4,#MX_TEMP1(,r13,152)
000132 5000 D09C 000012 | ST r0,#MX_TEMP1(,r13,156)
000136 4100 0000 000012 | LA r0,0
00013A 5000 D0A0 000012 | ST r0,#MX_TEMP1(,r13,160)
00013E 5020 D0A4 000012 | ST r2,#MX_TEMP1(,r13,164)
000142 5000 D0A8 000012 | ST r0,#MX_TEMP1(,r13,168)
000146 05EF 000012 | BALR r14,r15
000148 000013 | @1L1 DS 0H
000148 58F0 3012 000013 | L r15,=V(IBMQEFSH)(,r3,18)
00014C 05EF 000013 | BALR r14,r15
00014E 000013 | @1L4 DS 0H
00014E Start of Epilog
00014E 58D0 D004 000013 | L r13,4(,r13)
000152 58E0 D00C 000013 | L r14,12(,r13)
000156 9828 D01C 000013 | LM r2,r8,28(r13)
00015A 051E 000013 | BALR r1,r14
00015C 0707 000013 | NOPR 7
00015E 0000
000160 Start of Literals
000160 00000000 =A(EXAMPLE2)
000164 00000000 =V(IBMQFRG)
000168 00000000 =A(B)
00016C 00000000 =V(IBMQJDSB)
5655-H31 IBM(R) Enterprise PL/I for z/OS : EXAMPLE
OFFSET OBJECT CODE LINE# FILE# P S E U D O A S S E M B L Y L I S T I N G
000170 00000000 =V(IBMQEFSH)
000174 End of Literals
*** General purpose registers used: 1111111110001111
*** Floating point registers used: 1111111100000000
*** Size of register spill area: 512(max) 0(used)
*** Size of dynamic storage: 200
*** Size of executable code: 350
*** CSECT Offset: 72 : 0x48
0001BC 0000 0000
Constant Area
000000 0004C5E7 E3D9 |..EXTR |
5655-H31 IBM(R) Enterprise PL/I for z/OS
OFFSET OBJECT CODE LINE# FILE# P S E U D O A S S E M B L Y L I S T I N G
PPA1: Entry Point Constants
000000 1CCEA166 =F'483303782' Flags
000004 000001C8 =A(PPA2-EXAMPLE)
000008 00000000 =F'0' No PPA3
00000C 00000000 =F'0' No EPD
000010 FFE00000 =F'-2097152' Register save mask
000014 00000000 =F'0' Member flags
000018 90 =AL1(144) Flags
000019 000000 =AL3(0) Callee's DSA use/8
00001C 0040 =H'64' Flags
00001E 0012 =H'18' Offset/2 to CDL
000020 00000000 =F'0' State variable location
000024 500000AF =F'1342177455' CDL function length/2
000028 FFFFFE80 =F'-384' CDL function EP offset
00002C 38280000 =F'942145536' CDL prolog
000030 400800A7 =F'1074266279' CDL epilog
000034 00000000 =F'0' CDL end
000038 0007 **** AL2(7),C'EXAMPLE'
PPA1 End
PPA2: Compile Unit Block
000000 0B00 3203 =F'184562179' Flags
000004 FFFF FDF0 =A(CEESTART-PPA2)
000008 0000 0000 =F'0' No PPA4
00000C FFFF FDF0 =A(TIMESTMP-PPA2)
000010 0000 0000 =F'0' No primary
000014 0200 0000 =F'33554432' Flags
PPA2 End
5655-H31 IBM(R) Enterprise PL/I for z/OS
E X T E R N A L S Y M B O L D I C T I O N A R Y
NAME TYPE ID ADDR LENGTH NAME TYPE ID ADDR LENGTH
EXAMPLE1 SD 1 000000 000228 EXAMPLE2 SD 2 000000 00005C
@EXAMPLE SD 3 000000 000004 B SD 4 000000 000010
EXAMPLE LD 0 000048 000001 CEESG011 ER 5 000000
IBMQFRG ER 6 000000 IBMQJDSB ER 7 000000
IBMQEFSH ER 8 000000 CEESTART ER 9 000000
CEEMAIN SD 10 000000 00000C IBMPINPL ER 11 000000
EXAMPLE ER 12 000000
5655-H31 IBM(R) Enterprise PL/I for z/OS
E X T E R N A L S Y M B O L C R O S S R E F E R E N C E
ORIGINAL NAME EXTERNAL SYMBOL NAME
EXAMPLE1 EXAMPLE1
EXAMPLE2 EXAMPLE2
_EXAMPLE @EXAMPLE
B B
EXAMPLE EXAMPLE
CEESG011 CEESG011
IBMQFRG IBMQFRG
IBMQJDSB IBMQJDSB
IBMQEFSH IBMQEFSH
CEESTART CEESTART
CEEMAIN CEEMAIN
IBMPINPL IBMPINPL
5655-H31 IBM(R) Enterprise PL/I for z/OS
* * * * * S T O R A G E O F F S E T L I S T I N G * * * * *
IDENTIFIER DEFINITION ATTRIBUTES
<SEQNBR>-<FILE NO="">:<FILE LINE="">
A 1-0:5 Class = automatic, Location = 176 : 0xB0(r13), Length = 4
B 1-0:6 Class = external definition, Location = CSECT B, Length = 16
C 1-0:7 Class = static, Location = 40 : 0x28 + CSECT EXAMPLE2, Length = 20
D 1-0:8 Class = static, Location = 0 : 0x0 + CSECT EXAMPLE2, Length = 4
E 1-0:9 Class = automatic, Location = 180 : 0xB4(r13), Length = 4
EXTR 1-0:4 Class = static, Location = 8 : 0x8 + CSECT EXAMPLE2, Length = 8
* * * * * E N D O F S T O R A G O F F S E T L I S T I N G * * * * *
5655-H31 IBM(R) Enterprise PL/I for z/OS
* * * * * S T A T I C M A P * * * * *
OFFSET (HEX) LENGTH (HEX) NAME
0 4 D
4 4 _Dsc_000003
8 8 EXTR
10 8 _Dsc_000001
18 8 _Dsc_000002
20 8 _Dsc_000004
28 14 C
40 1C _Dsc_000005
* * * * * E N D O F S T A T I C M A P * * * * *
5655-H31 IBM(R) Enterprise PL/I for z/OS
* * * * * A U T O M A T I C M A P * * * * *
Block name: EXAMPLE
OFFSET (HEX) LENGTH (HEX) NAME
98 18 #MX_TEMP1
B0 4 A
B4 4 E
B8 8 _temp1
C0 8 _temp2
* * * * * E N D O F A U T O M A T I C M A P * * * * *