Assembler Bonus Pack
Pgm Language 1 is Assembler
Peter Dennler
Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich
Tel. +41 44 334 13 27
Email P: [email protected]
Email G: [email protected]
URL P: http://www.krawacki.ch
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 2
Introduction
This presentation should give you a lot of ideas for
better understanding of Assembler on System z
You can find within this documentation some
supplementary details in conjunction with IBM
Assembler courses (IBM-ES34 and IBM-OF36) and
also for the CS internal Assembler courses 2011 / 2013
Understand this paper as work paper. I'll insert from
time to time necessary changes into an actual version
All versions are 'downloadable' from my URL
Version 03.01.01 – August 2013
http://www.krawacki.ch
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 3
Contents • Index Register
• Reentrant/Reusable + A-/R-Mode
• Linkage Conventions
• Base-Reg with BALR/BASR/BAKR
• LE (Language Environment)
• Dynamic / Static Linkage / (
• Assembly / Linkage Editor
• Tips and Tricks
• z/OS Control Blocks
• IBM Manuals and other Documents
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 4
Index Register
Instruction to add Register (R# + 1) ?
LA R9,1(R9)
LA R9,1(,R9)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 5
Index Register
Instruction to add Register (R1 + 1) ?
LA R9,1(R9)
4199 0001 Base 0 + Index 9 + 1 = R9 + 1
LA R9,1(,R9)
4190 9001 Base 9 + Index 0 + 1 = R9 + 1
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 6
Index Register
Live from pgm:
92 ***----------------------
00003A 4190 000A 0000A 93 LA R9,10
00003E 4190 9001 00001 94 LA R9,1(,R9)
000042 4199 0001 00001 95 LA R9,1(R9)
000046 0000
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 7
Reentrant/Reusable + A-/R-
Mode
• In some cases it is urgent to write a Program as REENTRANT/REUSABLE (LPA-Modules, Multitasking-Environment …)
• To obtain REENTRANT code it is strictly recommended to splitt Program Code and Program Data (Changes within the Program Code during execution = S0C4 Abend)
• Each User must have his own Data-Part (Working Storage)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 8
Reentrant/Reusable + A-/R-
Mode • A program must allocate Storage for the Data-Part with
macro-instructions (GETMAIN or STORAGE
OBTAIN / IARV64 for Memory Objects 64 Bit)
• Normally a program releases the storage for the Data-
Part before termination by using macro-instructions
(FREEMAIN or STORAGE RELEASE / IARV64 for
Memory Objects 64 Bit)
• GETMAIN/FREEMAIN = SVC
• STORAGE … = PC Call
• To make a program Reentrant/Reusable you must
specify REENT/REUSE at linkage time
• REUSABLE = New Initialyzation of Storage at runtime
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 9
Reentrant/Reusable + A-/R-
Mode • AMODE – Addressing Mode defines where a Program
can access Pgm-Code and Data
• RMODE – Residency Mode defines where the System Loads a Program
• It is not possible to access Data or Pgm-Code over 16 MB with a AMODE 24 Pgm
• Within assembler the programmer must define the AMODE and RMODE
• Some functions/macros dont work under AMODE 31
• The reason behind different AMODE/RMODE is the compatability between z/OS today and historical (older) programs and application (Base is 1964 / S/360)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 10
Reentrant/Reusable + A-/R-
Mode • False AMODE/RMODE definition has often the effect
of a S0C4 Abend
• In most cases it is necessary within an assembler module to allocate some data areas below the line (RMODE 24) f.e. QSAM I/O (VSAM 31 Bit AM!)
• The system loads modules with AMODE 31 and RMODE ANY normally above the line
• It is possible to switch the AMODE during the execution of a module, then the Pgm-Code must be addressable (RMODE 24!)
• The next slides describes A-/R-Mode and REENTRANT/REUSABLE programs
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 11
Reentrant/Reusable + A-/R-Mode
64 Bit Pgm / Private Storage
Memory-Object (Minimum 1 MB)
64 Bit Pgm / Shared Storage
Memory-Object (Minimum 1 MB)
Analog Common Area (CA)
64 Bit Pgm / Private Storage
Memory-Object (Minimum 1 MB)
24 / 31 Bit Pgm / Private Storage
and Common Area (Page 4 KB)
Storage Areas 64 / 31 / 24 Bit Amode
Copy from z/OS MVS Extended Addressability Guide
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 12
Reentrant/Reusable + A-/R-Mode
Next Slide shows the first 2 GB –
from 0 to the bar
Storage Areas 64 / 31 / 24 Bit Amode
Copy from z/OS MVS Extended Addressability Guide
Reentrant/Reusable + A-/R-Mode
2 GB Extended Private
ECSA
ELPA / EPLPA / EMLPA
Extended Nucleus
16 MB Nucleus
LPA / PLPA / MLPA
CSA
Private
z/OS Storage from 0 to the bar (2 GB)
E-Common
Common Area
The bar 2 GB
The line / 16 MB
0 – 8 K = PSA
Boundary E-CA /
E-Private - MB
Boundary CA /
Private – MB
ECA + CA + PSA is for all AS the same Storage!
Use TSO TASID to show Storage Layout
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 14
Reentrant/Reusable + A-/R-Mode
Storage Areas Pgm Residency 31/24
2 GB Extended Private
ECSA
ELPA / EPLPA / EMLPA
Extended Nucleus
16 MB Nucleus
LPA / PLPA / MLPA
CSA
Private
PGM A – User-Pgm
PGM B – System-Pgm
PGM C – System-Pgm
PGM D – z/OS
PGM H – User-Pgm
Pgm Amode 31 Rmode Any /
Pgm Amode 31 Rmode 24 /
Pgm Amode 24 Rmode 24
PGM E – z/OS
PGM F – System-Pgm
PGM G – System-Pgm
PGM I – User-Pgm
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 15
Reentrant/Reusable + A-/R-Mode
24 / 31 / 64 Bit Amode
24 Bit 31 Bit 64 Bit
GPR 4 Bytes
32 Bit
4 Bytes
32 Bit
8 Bytes
64 Bit
Address 3 Bytes
24 Bit
4 Bytes (CB! )
31 Bit
8 Bytes
64 Bit
PSW 8 Bytes
64 Bit
8 Bytes
64 Bit (HO! )
16 Bytes
128 Bit
Storage 16 MB 2 GB 16 Exa B
CB = Chiasso Bit (first Bit at Address) ON = 31 Bit / OFF = 24 Bit
HO = High Order Bit (like CB at Addresses and also within PSW
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 16
Reentrant/Reusable + A-/R-Mode
Non-Reentrant-PGM
User 1
1 GB E Pvte
User 2
500 MB E P
User 3
1 GB E Pvte
E Common
16 MB Common
Private
PGM A / Data A
– User-3
Pgm Non-Reentrant
Pgm Reentrant
PGM A / Data A
– User-1
PGM B /Data B
– User-2
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 17
Reentrant/Reusable + A-/R-Mode
Non-Reentrant + Reentrant-PGM
User 1
1 GB E Pvte
User 2
500 MB E P
User 3
1 GB E Pvte
E Common
16 MB Common
Private
PGM C – User-3
Pgm Non-Reentrant
Pgm Reentrant
PGM A / Data A
– User-1
PGM B /Data B
– User-2
Data C – User-3
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 18
Reentrant/Reusable + A-/R-Mode
Reentrant-PGM
User 1
1 GB E Pvte
User 2
500 MB E P
User 3
1 GB E Pvte
E Common
16 MB Common
Private
PGM C – User-3
Pgm Non-Reentrant
Pgm Reentrant
PGM C - EPLPA
Data D – User-2
Data C – User-3
PGM D - PLPA
Data C – User-1
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 19
Reentrant/Reusable + A-/R-Mode
Reentrant-PGM – TMP (IKJEFT01)
User 1
1 GB E Pvte
User 2
500 MB E P
User 3
1 GB E Pvte
E Common
16 MB Common
Private
Data IK.2 – User-3
Pgm Non-Reentrant
Pgm Reentrant
PGM IKJEFT01/02 - EMPLPA
Data I.2 – User-2
Data IK.1 – User-1
Data IK.2 – User-1 Data IK.1 – User-3
D I.1 – U-2
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 20
Linkage Conventions
• A Program works often together with other Programs, and therefore it is necessary to have some rules of the communication between different objects
• These rules are known as 'Linkage Conventions'
• For your own Main and Subroutines it is possible to arrange special rules (f.e. YYTU)
• Conventions for calling macros are documented within the different macro manuals
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 21
Linkage Conventions
• The Linkage Conventions should also make it possible that Assembler modules work together with programs written in other program languages (PL/I, COBOL, C, …)
• Today all z/OS high level languages use the LE (Language Environment) as runtime environment!
• Assembler modules are able to use LE (see LE part within this presentation) but they could run in many cases without LE
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 22
Linkage Conventions
• The valid standard OS Linkage Conventions to call Subroutines and External Functions are:
– REG 0 – sometimes used as parameter
– REG 1 – parameter address or pointer to parameter
– … REG 2 to REG 11 not defined
– REG 12 – under LE used for CAA (see LE)
– REG 13 – points to the actual save area
– REG 14 – contains return-address
– REG 15 – EPA (Enty Point Address) of Subroutine
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 23
Linkage Conventions
• Under normal conditions Subroutines should give back all registers with the same value that they contained at the time of calling (except REG 15)
• REG 15 should contain a return code after program termination (works under different progam languages – PL/I – Assembler – COBOL …)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 24
Linkage Conventions
• At Program Initialization without BAKR it is urgent to store the Address of the old Save-Area (HSA = Higher Save Area) into the new (LSA = Lower Save Area) and vice versa, so it is possible within a Dump to follow the Save Area Chains in both directions (top to down and down to top)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 25
Linkage Conventions • Sample of a save-area
(72 Bytes = 18 Fullwords )
Save-Area – (assumed for start Addr 06F58)
06F58 WD1 HSA LSA RET EPA R0
06F70 R1 R2 R3 R4 R5 R6
06F88 R7 R8 R9 R10 R11 R12
Sample Next-Address = 6FA0
Sample Start-Address = 6F58
Total length = 48 X = 72 B (18 * 4 B)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 26
Linkage Conventions
• Next graphics demonstrate how three programs work together by using the linkage conventions
• A save area contains in fact 18 Fullwords (to reduce space within the graphics I present only 12 registers)
• Instructions and values that change at executing the instruction are in red (value after the instruction!)
• R13 in the new (HSA) is in blue
• u stands for unpredictable!
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 27
Linkage Conventions
• I used for the graphics original virtual addresses of the Dump (that the addresses are not very long the three programs are assembled with RMODE=24)
• To follow the urgent instructions within next graphics it is comfortable to use the edited Dump – KR8830_S0C1 (the full version of the dump is also delifered with this presentation)
• Title with Linkage Conventions (+) mark the pgm initialization, (–) mark the pgm termination
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 28
Linkage Conventions
• Some Abrevations
– EPA (Entry Point Address)
– HSA (Higher Save Area)
– ILC (Instruction Length Code)
– LSA (Lower Save Area)
– NSI (Next Sequential Instructions / no Branch happens)
– RET (Return Address)
Linkage Conventions (+1)
Save-Area (from TCB – TCBFSA)
06F58 0 0 0 0
06F68 0 0 0 0
06F78 0 0 0 0
PGM = KR8810
AT ENTRY
EPA = 07C28
R13 TCBFSA
R14 CVTEXIT
R15 EPA KR8810
GRP Registers
R00 R01 R10
uuuuu 06FF0 uuuuu
R13 R14 R15
06F58 FDCFB8 07C28
Loc Addr Instruction
0 07C28 47F0 F02E 28D2
0 07C28 BC (M:1111) + 46
DVC/ASS 29
Linkage Conventions (+2)
Save-Area (from TCB – TCBFSA)
06F58 0 0 0 R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 2E – 07C56
EPA = 07C28
R13 TCBFSA
R14 CVTEXIT
R15 EPA KR8810
GRP Registers
R00 R01 R10
uuuuu 06FF0 uuuuu
R13 R14 R15
06F58 FDCFB8 07C28
Loc Addr Instruction
0002E 07C56 90EC D00C
0002E 07C56 STM 14,12,12(13)
DVC/ASS 30
Linkage Conventions (+3)
Save-Area (from TCB – TCBFSA)
06F58 0 0 0 R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 32 – 07C5A
EPA = 07C28
R13 TCBFSA
R14 CVTEXIT
R15 EPA KR8810
GRP Registers
R00 R01 R10
uuuuu 06FF0 07C5C
R13 R14 R15
06F58 FDCFB8 07C28
Loc Addr Instruction
00032 07C5A 05A0
00032 07C5A BALR 10,0 ILC 2!
DVC/ASS 31
Linkage Conventions (+4)
Save-Area (from TCB – TCBFSA)
06F58 0 0 0 R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 7A – 07CA2
EPA = 07C28
R13 TCBFSA
R14 u
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu 06E18 07C5C
R13 R14 R15
06F58 uuuuu 0
Loc Addr Instruction
0007A 07CA2 B218 E000
0007A 07CA2 PC 0(14)-Strg-Ob
Save-Area (Alloc from KR8810)
06E18 0 0 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 32
Linkage Conventions (+5)
Save-Area (from TCB – TCBFSA)
06F58 0 0 0 R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 84 – 07CAC
EPA = 07C28
R13 TCBFSA
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu 06E18 07C5C
R13 R14 R15
06F58 uuuuu uuuuu
Loc Addr Instruction
00084 07CAC 50D0 1004
00084 07CAC ST R13,4(,R1)
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 33
Linkage Conventions (+6)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 88 – 07CB0
EPA = 07C28
R13 TCBFSA
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu 06E18 07C5C
R13 R14 R15
06F58 uuuuu uuuuu
Loc Addr Instruction
00088 07CB0 5010 D008
00088 07CB0 ST R1,8(,R13)
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 34
Linkage Conventions (+7)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 8C – 07CB4
EPA = 07C28
R13 New Save-A
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu 06E18 07C5C
R13 R14 R15
06E18 uuuuu 0
Loc Addr Instruction
0008C 07CB4 18D1
0008C 07CB4 LR R13,R1
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 35
Linkage Conventions (+8)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 15A – 07D82
EPA = 07C28
R13 New Save-A
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 uuuuu uuuuu
Loc Addr Instruction
0015A 07D82 1815
0015A 07D82 LR R1,R5 (Parm)
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 36
Linkage Conventions (+9)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 15C – 07D84
EPA = 07C28
R13 New Save-A
R14 u
R15 EPA KR8820
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 uuuuu 07868
Loc Addr Instruction
0015C 07D84 58F0 D04C
0015C 07D84 L R15,EPASUBMD
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 37
Linkage Conventions (+10)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 160 – 07D88
EPA = 07C28
R13 New Save-A
R14 NSI 07D8A
R15 EPA KR8820
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 07D8A 07868
Loc Addr Instruction
00160 07D88 05EF
00160 07D88 BALR R14,R15
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 38
Linkage Conventions (+11)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8820
AT ENTRY
EPA = 07868
R13 Save-Area
R14 NSI Return
R15 EPA KR8820
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 07D8A 07868
Loc Addr Instruction
0 07868 47F0 F02E 28D2
0 07868 BC (M:1111) + 46
Save-Area (Alloc from KR8810)
06E18 0 R13 0 0
06E28 0 0 0 0
06E38 0 0 0 0
DVC/ASS 39
Linkage Conventions (+12)
PGM = KR8820
+ 2E - 07896
EPA = 07868
R13 Save-Area
R14 NSI Return
R15 EPA KR8820
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 07D8A 07868
Loc Addr Instruction
0002E 07896 90EC D00C
0002E 07896 STM 14,12,12(13)
Save-Area (Alloc from KR8810)
06E18 0 R13 0 R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 40
Linkage Conventions (+13)
PGM = KR8820
+ 32 – 0789A
EPA = 07868
R13 Save-Area
R14 NSI Return
R15 EPA KR8820
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06E18 07D8A 07868
Loc Addr Instruction
00032 0789A 05A0
00032 0789A BALR 10,0 ILC 2!
Save-Area (Alloc from KR8810)
06E18 0 R13 0 R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 41
Linkage Conventions (+14)
Save-Area (Alloc from KR8820)
06CD8 0 0 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ 7A – 078E2
EPA = 07868
R13 Save-Area
R14 u
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu 06CD8 0789C
R13 R14 R15
06E18 uuuuu 0
Loc Addr Instruction
0007A 078E2 B218 E000
0007A 078E2 PC 0(14)-Strg-Ob
Save-Area (Alloc from KR8810)
06E18 0 R13 0 R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 42
Linkage Conventions (+15)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ 84 – 078EC
EPA = 07868
R13 Save-Area
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu 06CD8 0789C
R13 R14 R15
06E18 uuuuu uuuuu
Loc Addr Instruction
00084 078EC 50D0 1004
00084 078EC ST R13,4(,R1)
Save-Area (Alloc from KR8810)
06E18 0 R13 0 R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 43
Linkage Conventions (+16)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ 88 – 078F0
EPA = 07868
R13 Save-Area
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu 06CD8 0789C
R13 R14 R15
06E18 uuuuu uuuuu
Loc Addr Instruction
00088 078F0 5010 D008
00088 078F0 ST R1,8(,R13)
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 44
Linkage Conventions (+17)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ 8C – 078F4
EPA = 07868
R13 New Save-A
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu 06CD8 0789C
R13 R14 R15
06CD8 uuuuu uuuuu
Loc Addr Instruction
0008C 078F4 18D1
0008C 078F4 LR R13,R1
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 45
Linkage Conventions (+18)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ F2 – 0795A
EPA = 07868
R13 New Save-A
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 uuuuu uuuuu
Loc Addr Instruction
000F2 0795A 1815
000F2 0795A LR R1,R5
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 46
Linkage Conventions (+19)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ 134 – 0799C
EPA = 07868
R13 New Save-A
R14 u
R15 EPA KR8830
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 uuuuu 075E0
Loc Addr Instruction
00134 0799C 58F0 D04C
00134 0799C L R15,EPASUBMD
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 47
Linkage Conventions (+20)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8820
+ 138 – 79A0
EPA = 07868
R13 New Save-A
R14 NSI 079A2
R15 EPA KR8830
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 079A2 075E0
Loc Addr Instruction
00138 079A0 05EF
00138 079A0 BALR R14,R15
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 48
Linkage Conventions (+21)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 0
06CE8 0 0 0 0
06CF8 0 0 0 0
PGM = KR8830
AT ENTRY
EPA = 075E0
R13 Save-Area
R14 NSI RETURN
R15 EPA KR8830
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 079A2 075E0
Loc Addr Instruction
0 075E0 47F0 F02E 28D2
0 075E0 BC (M:1111) + 46
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 49
Linkage Conventions (+22)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 2E – 0760E
EPA = 075E0
R13 Save-Area
R14 NSI RETURN
R15 EPA KR8830
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 079A2 075E0
Loc Addr Instruction
0002E 0760E 90EC D00C
0002E 0760E STM 14,12,12(13)
DVC/ASS 50
Linkage Conventions (+23)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 32 - 07612
EPA = 075E0
R13 Save-Area
R14 NSI RETURN
R15 EPA KR8830
GRP Registers
R00 R01 R10
uuuuu 001E9 07614
R13 R14 R15
06CD8 079A2 075E0
Loc Addr Instruction
00032 07612 05A0
00032 07612 BALR 10,0 ILC 2!
DVC/ASS 51
Linkage Conventions (+24)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 7A – 0765A
EPA = 075E0
R13 Save-Area
R14 u
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu 06BA0 07614
R13 R14 R15
06CD8 uuuuu 0
Loc Addr Instruction
0007A 0765A B218 E000
0007A 0765A PC 0(14)-Strg-Ob
Save-Area (Alloc from KR8830)
06BA0 0 0 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 52
Linkage Conventions (+25)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 84 – 07664
EPA = 075E0
R13 Save-Area
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu 06BA0 07614
R13 R14 R15
06CD8 uuuuu uuuuu
Loc Addr Instruction
00084 07664 50D0 1004
00084 07664 ST R13,4(,R1)
Save-Area (Alloc from KR8830)
06BA0 0 R13 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 53
Linkage Conventions (+26)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 88 – 07668
EPA = 075E0
R13 Save-Area
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu 06BA0 07614
R13 R14 R15
06CD8 uuuuu uuuuu
Loc Addr Instruction
00088 07668 5010 D008
00088 07668 ST R1,8(,R13)
Save-Area (Alloc from KR8830)
06BA0 0 R13 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 54
Linkage Conventions (+27)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 8C – 0766C
EPA = 075E0
R13 New Save-A
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu 06BA0 07614
R13 R14 R15
06BA0 uuuuu uuuuu
Loc Addr Instruction
0008C 0766C 18D1
0008C 0766C LR R13,R1
Save-Area (Alloc from KR8830)
06BA0 0 R13 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 55
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 56
Linkage Conventions
• Sample Program (KR8810) loads an external submodule (KR8820) which calls a second submodule (KR8830)
20:31:29 IEF403I A107187A - STARTED - TIME=20.31.29 S14
20:31:29 +TEST-MSG PGM - KR8810 - BEFORE SUB-MODULE
20:31:29 +TEST-MSG PGM - KR8820 - BEFORE SUB-MODULE
20:31:29 +TEST-MSG PGM - KR8830 - LAST SUB-MODULE
20:31:29 +TEST-MSG PGM - KR8820 - AFTER SUB-MODULE
20:31:29 +TEST-MSG PGM - KR8820 - RC SUB-MOD ----> 0008
20:31:29 +TEST-MSG PGM - KR8810 - AFTER SUB-MODULE
20:31:29 +TEST-MSG PGM - KR8810 - RC SUB-MOD ----> 0008
20:31:29 IEF404I A107187A - ENDED - TIME=20.31.29 S14
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 57
Linkage Conventions
• At KR8830 (third Module) a S0C1 was forced by inserting a constant with X‘00000000‘ as value to obtain a Dump (invalid OP-Instruction = Operation Exception)
• Next slide Dump
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 58
Linkage Conventions / Dump 1 SYSTEM COMPLETION CODE=0C1 REASON CODE=00000001
TIME=12.42.09 SEQ=45374 CPU=0000 ASID=0337
PSW AT TIME OF ERROR 078D2000 80007702 ILC 2 INTC 01
ACTIVE LOAD MODULE ADDRESS=000075E0 OFFSET=00000122
NAME=KR8830
DATA AT PSW 000076FC - 05E905E9 00000000 55F0A220
GR 0: 00011000 1: 6B244DF2
2: 00006C20 3: 00006C90
4: CAFFEE03 5: 00000059
6: 800075E0 7: 8000774A
8: 00000000 9: 000076CE
A: 80007614 B: 00000138
C: 87385D3A D: 00006BA0
E: 0000000E F: 00000000
END OF SYMPTOM DUMP
IEF450I A107187A E01 - ABEND=S0C1 U0000 REASON=00000001
Linkage Conventions / Dump 2 -SAVE AREA TRACE
-PROCEEDING FORWARD FROM TCBFSA
NAME=KR8810
WAS ENTERED VIA LINK AT EP KR8810--11/28/10--18.44-KRAWACKIDON-0101
SA 00006F58 WD1 00000000 HSA 00000000 LSA 00006E18 RET 80FDCFB8
EPA 80007C28 R0 FD00000C R1 00006FF0 R2 00000040 R3 007D9D84
R4 007D9D60 R5 007FF370 R6 007C2FE0 R7 FD000000 R8 007D7078
R9 007FF538 R10 00000000 R11 007FF370 R12 87385D3A
NAME=KR8820
WAS ENTERED VIA CALL AT EP KR8820--11/28/10--18.12-KRAWACKIDON-0101
SA 00006E18 WD1 00000000 HSA 00006F58 LSA 00006CD8 RET 80007D8A
EPA 80007868 R0 00011000 R1 000001E9 R2 00006E98 R3 00006F08
R4 CAFFEE01 R5 000001E9 R6 80007C28 R7 80007E8E R8 00000000
R9 00007E0A R10 80007C5C R11 00000139 R12 87385D3A
Backward Chain Last (Actual) Save Area – R13 at time of Error -> HSA
Forward Chain First Save Area -> LSA
DVC/ASS 59
Linkage Conventions / Dump 3
NAME=KR8830
WAS ENTERED VIA CALL AT EP KR8830--11/28/10--18.13-KRAWACKIDON-0101
SA 00006CD8 WD1 00000000 HSA 00006E18 LSA 00006BA0 RET 800079A2
EPA 800075E0 R0 00011000 R1 000001E9 R2 00006D58 R3 00006DC8
R4 CAFFEE02 R5 000001E9 R6 80007868 R7 80007AA2 R8 00000000
R9 00007A22 R10 8000789C R11 00000139 R12 87385D3A
SA 00006BA0 WD1 00000000 HSA 00006CD8 LSA 00000000 RET 00000000
EPA 00000000 R0 00000000 R1 00000000 R2 00000000 R3 00000000
R4 00000000 R5 00000000 R6 00000000 R7 00000000 R8 00000000
R9 00000000 R10 00000000 R11 00000000 R12 00000000
Backward Chain Last (Actual) Save Area – R13 at time of Error -> HSA
Forward Chain First Save Area -> LSA
DVC/ASS 60
Linkage Conventions / Dump 4
-INTERRUPT AT 80007702
-PROCEEDING BACK VIA REG 13
SA 00006BA0 WD1 00000000 HSA 00006CD8 LSA 00000000 RET 00000000
EPA 00000000 R0 00000000 R1 00000000 R2 00000000 R3 00000000
R4 00000000 R5 00000000 R6 00000000 R7 00000000 R8 00000000
R9 00000000 R10 00000000 R11 00000000 R12 00000000
NAME=KR8830
WAS ENTERED VIA CALL AT EP KR8830--11/28/10--18.13-KRAWACKIDON-0101
SA 00006CD8 WD1 00000000 HSA 00006E18 LSA 00006BA0 RET 800079A2
EPA 800075E0 R0 00011000 R1 000001E9 R2 00006D58 R3 00006DC8
R4 CAFFEE02 R5 000001E9 R6 80007868 R7 80007AA2 R8 00000000
R9 00007A22 R10 8000789C R11 00000139 R12 87385D3A
Backward Chain Last (Actual) Save Area – R13 at time of Error -> HSA
Forward Chain First Save Area -> LSA
DVC/ASS 61
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
DVC/ASS 62
Linkage Conventions / Dump 5 Save Area 0 – Pointed by R13 at time of error
First 4 Bytes of Save Area 0 Green / last 4 Bytes Pink
00006BA0 00000000 00006CD8 00000000 00000000 SA0 HSA LSA
00006BB0 00000000 00000000 00000000 00000000
00006BC0 00000000 00000000 00000000 00000000
00006BD0 00000000 00000000 00000000 00000000
00006BE0 00000000 00000000 00000138 00000000 SA0-END
00006BF0 00000000 00000000 00000000 00000000
Save Area –1 – Pointed by HSA of SA 0 / LSA of SA –2
First 4 Bytes of Save Area –1 Green / last 4 Bytes Pink
00006CC0 40404040 40404040 40404040 40404040
00006CD0 40404040 40404040 00000000 00006E18 SA –1 HSA
00006CE0 00006BA0 800079A2 800075E0 00011000 LSA
00006CF0 000001E9 00006D58 00006DC8 CAFFEE02
00006D00 000001E9 80007868 80007AA2 00000000
00006D10 00007A22 8000789C 00000139 87385D3A SA–1-END
00006D20 00000139 800075E0 00000000 00000000
00006D30 00000000 00000000 00000000 00000000
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
DVC/ASS 63
Linkage Conventions / Dump 6 Save Area –2 – Pointed by HSA of SA -1 / LSA of SA –3
First 4 Bytes of Save Area –2 Green / last 4 Bytes Pink
00006E00 40404040 40404040 40404040 40404040
00006E10 00000000 00000000 00000000 00006F58 SA-2 HSA
00006E20 00006CD8 80007D8A 80007868 00011000 LSA
00006E30 000001E9 00006E98 00006F08 CAFFEE01
00006E40 000001E9 80007C28 80007E8E 00000000
00006E50 00007E0A 80007C5C 00000139 87385D3A
00006E60 00000139 80007868 00000000 00000000
Save Area –3 – Pointed by HSA of SA –2
First 4 Bytes of Save Area –3 Green / last 4 Bytes Pink
00006F40 40404040 40404040 40404040 40404040
00006F50 00000000 00000000 00000000 00000000 SA-3 HSA
00006F60 00006E18 80FDCFB8 80007C28 FD00000C LSA
00006F70 00006FF0 00000040 007D9D84 007D9D60
00006F80 007FF370 007C2FE0 FD000000 007D7078
00006F90 007FF538 00000000 007FF370 87385D3A
00006FA0 00000000 00000000 00000000 00000000
Linkage Conventions / Dump 7 Dump of parts of module KR8830 / EPA + first 4 Bytes Red
Responsible Instruction for the S0C1-Abend is in Pink
000075E0 47F0F02E 28D2D9F8 F8F3F060 60F1F161 F2F861F1 F06060F1 F84BF1F3 60D2D9C1
00007600 E6C1C3D2 C9C4D6D5 60F0F1F0 F10090EC D00C05A0 1851186F 17991777 5870A204
00007620 5810A208 5820A144 16120B71 4190A0BA 5840A20C 41B06138 41F06000 1BBF0700
00007640 47F0A034 00000000 180B58F0 A03058E0 001058EE 030458EE 00A0B218 E00012FF
00007660 4770A0E6 50D01004 5010D008 18D150B0 D048D26F D080A194 D247D0F0 A14C4130
00007680 D0F04120 D080D225 D0FBA228 D205D101 60051812 50301004 18E11BFF 4AF10000
000076A0 1AEF9600 E0049680 E0050A23 41E0000E 5550A210 47D0A0D6 5B50A214 155E4720
000076C0 A0ECA751 00014770 A0E847F5 A0D65890 A2181BE9 18FE5BE0 A21C89E0 000188E0
000076E0 0001189F 18FE47F0 A0F005E9 05E905E9 05E905E9 05E905E9 05E905E9 05E905E9
00007700 00000000 55F0A220 4780A134 55F0A224 4780A134 5860D048 182D58D0 D004183F
00007720 47F0A114 00000001 18061812 58F0A110 58E00010 58EE0304 58EE00CC B218E000
00007740 12FF4770 A0EA18F3 0B0758E0 D00C980C D01407FE 00000000 80000000 00000000
PSW AT TIME OF ERROR 078D2000 80007702 - ILC 2 (failing Instruction)
Subtract Bit 32 80000000 - High Order Bit (AM = 31!)
Abend happens at ------------- 00007700
Info from Dump: DATA AT PSW 000076FC - 05E905E9 00000000 55F0A220
DVC/ASS 64
Linkage Conventions / Dump 8 -> Program Assembly Listing of KR8830
-> ACTIVE LOAD MODULE ADDRESS=000075E0 OFFSET=00000122 NAME=KR8830
-> Point of Error = Offset – ILC 2 / 00000122 – 2 = 00000120
000000 00000 00282 69 KR8830 CSECT
70 KR8830 AMODE 31
71 KR8830 RMODE 24
74 SAVE(14,12),,KR8830-
000000 47F0 F02E 0002E 76+ B 46(0,15)
000004 28 77+ DC AL1(40)
000005 D2D9F8F8F3F06060 78+ DC CL32'KR8830--
000025 C4D6D560F0F1F0F1 79+ DC CL8'DON-0101'
00002E 90EC D00C 0000C 80+ STM 14,12,12(13)
000032 05A0 81 BALR 10,0
R:A 00034 82 USING *,10
000034 1851 83 LR 5,1
000036 186F 84 LR 6,15
000038 1799 85 XR 9,9
………>>>>>>>>……
00011E 05E9 195 EC0020 BALR R14,R9
00120 198 SCHNULZE EQU *
000120 00000000 199 DC 1F'0'
00124 202 FREEMN EQU *
000124 55F0 A220 00254 203 CL R15,=F'16' DVC/ASS 65
Linkage Conventions (-1)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 138 – 07718
EPA = 075E0
R13 Save-Area
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu uuuuu 07614
R13 R14 R15
06BA0 uuuuu uuuuu
Loc Addr Instruction
00138 07718 182D
00138 07718 LR R2,R13
Save-Area (Alloc from KR8830)
06BA0 0 R13 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 66
Linkage Conventions (-2)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 13A – 0771A
EPA = 075E0
R13 Old Save-A
R14 u
R15 u
GRP Registers
R00 R01/N R10
uuuuu uuuuu 07614
R13 R14 R15
06CD8 uuuuu uuuuu
Loc Addr Instruction
0013A 0771A 58D0 D004
0013A 0771A L R13,4(,R13)
Save-Area (Alloc from KR8830)
06BA0 0 R13 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 67
Linkage Conventions (-3)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 15C – 0773C
EPA = 075E0
R13 Old Save-A
R14 u
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu uuuuu 07614
R13 R14 R15
06CD8 uuuuu 0
Loc Addr Instruction
0015C 0773C B218 E000
0015C 0773C PC 0(14)-Strg-Rl
Save-Area (Alloc from KR8830)
06BA0 0 R13 0 0
06BB0 0 0 0 0
06BC0 0 0 0 0 DVC/ASS 68
Linkage Conventions (-4)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 16A – 0774A
EPA = 075E0
R13 Old Save-A
R14 NSI RETURN
R15 0
GRP Registers
R00 R01 R10
uuuuu uuuuu 07614
R13 R14 R15
06CD8 079A2 0
Loc Addr Instruction
0016A 0774A 58E0 D00C
0016A 0774A L 14,12(0,13)
DVC/ASS 69
Linkage Conventions (-5)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 16E – 0774E
EPA = 075E0
R13 Old Save-A
R14 NSI RETURN
R15 0
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 079A2 0
Loc Addr Instruction
0016E 0774E 980C D014
0016E 0774E LM 0,12(20,13)
DVC/ASS 70
Linkage Conventions (-6)
Save-Area (Alloc from KR8820)
06CD8 0 R13 0 R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8830
+ 172 – 07752
EPA = 075E0
R13 Old Save-A
R14 NSI RETURN
R15 0
GRP Registers
R00 R01 R10
uuuuu uuuuu 0789C
R13 R14 R15
06CD8 079A2 0
Loc Addr Instruction
00172 07752 07FE
00172 07752 BR 14 (M:1111)
DVC/ASS 71
Linkage Conventions (-7)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8820
+ 13A – 079A2
EPA = 07868
R13 Save-Area
R14 NSI 079A2
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu 001E9 0789C
R13 R14 R15
06CD8 079A2 0
Loc Addr Instruction
0013A 079A2 188F
0013A 079A2 LR R8,R15
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 72
Linkage Conventions (-8)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8820
+ 20A – 07A72
EPA = 07868
R13 Old Save-A
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu uuuuu 0789C
R13 R14 R15
06E18 uuuuu uuuuu
Loc Addr Instruction
0020A 07A72 58D0 D004
0020A 07A72 L R13,4(,R13)
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 73
Linkage Conventions (-9)
Save-Area (Alloc from KR8820)
06CD8 0 R13 R1/N R14
06CE8 R15 R0 R1 R2
06CF8 R3 R4 … …R12
PGM = KR8820
+ 22C – 07A94
EPA = 07868
R13 Old Save-A
R14 u
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu uuuuu 0789C
R13 R14 R15
06E18 uuuuu 0
Loc Addr Instruction
0022C 07A94 B218 E000
0022C 07A94 PC 0(14)-Strg-Rl
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 74
Linkage Conventions (-10)
PGM = KR8820
+ 250 – 07AB8
EPA = 07868
R13 Old Save-A
R14 NSI Return
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu uuuuu 0789C
R13 R14 R15
06E18 07D8A 0
Loc Addr Instruction
00250 07AB8 58E0 D00C
00250 07AB8 L 14,12(0,13)
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 75
Linkage Conventions (-11)
PGM = KR8820
+ 254 – 07ABC
EPA = 07868
R13 Old Save-A
R14 NSI Return
R15 0
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 07D8A 0
Loc Addr Instruction
00254 07ABC 980C D014
00254 07ABC LM 0,12,20(13)
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 76
Linkage Conventions (-12)
PGM = KR8820
+ 258 – 07AC0
EPA = 07868
R13 Old Save-A
R14 NSI Return
R15 0
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 07D8A 0
Loc Addr Instruction
00258 07AC0 07FE
00258 07AC0 BR 14 (M:1111)
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 77
Linkage Conventions (-13)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 162 – 07D8A
EPA = 07C28
R13 Save-Area
R14 NSI 07D8A
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu 001E9 07C5C
R13 R14 R15
06E18 07D8A 0
Loc Addr Instruction
00162 07D8A 188F
00162 07D8A LR R8,R15
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 78
Linkage Conventions (-14)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 236 – 07E5E
EPA = 07C28
R13 Old Save-A
R14 u
R15 u
GRP Registers
R00 R01 R10
uuuuu uuuuu 07C5C
R13 R14 R15
06F58 uuuuu uuuuu
Loc Addr Instruction
00236 07E5E 58D0 D004
00236 07E5E L R13,4(,R13)
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 79
Linkage Conventions (-15)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 258 – 07E80
EPA = 07C28
R13 Old Save-A
R14 u
R15 0 (RC)
GRP Registers
R00 R01 R10
uuuuu uuuuu 07C5C
R13 R14 R15
06F58 uuuuu 0
Loc Addr Instruction
00258 07E80 B218 E000
00258 07E80 PC 0(14)-Strg-Rl
Save-Area (Alloc from KR8810)
06E18 0 R13 R1/N R14
06E28 R15 R0 R1 R2
06E38 R3 R4 … …R12
DVC/ASS 80
Linkage Conventions (-16)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 26E – 07E96
EPA = 07C28
R13 TCBFSA
R14 CVTEXIT
R15 0
GRP Registers
R00 R01 R10
uuuuu uuuuu 07C5C
R13 R14 R15
06F58 FDCFB8 0
Loc Addr Instruction
0026E 07E96 58E0 D00C
0026E 07E96 L 14,12(0,13)
DVC/ASS 81
Linkage Conventions (-17)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 272 – 07E9A
EPA = 07C28
R13 TCBFSA
R14 CVTEXIT
R15 0
GRP Registers
R00 R01 R10
uuuuu uuuuu uuuuu
R13 R14 R15
06F58 FDCFB8 0
Loc Addr Instruction
00272 07E9A 980C D014
00272 07E9A LM 0,12,20(13)
DVC/ASS 82
Linkage Conventions (-18)
Save-Area (from TCB – TCBFSA)
06F58 0 0 R1/N R14
06F68 R15 R0 R1 R2
06F78 R3 R4 … …R12
PGM = KR8810
+ 276 – 07E9E
EPA = 07C28
R13 TCBFSA
R14 CVTEXIT
R15 0
GRP Registers
R00 R01 R10
uuuuu uuuuu uuuuu
R13 R14 R15
06F58 FDCFB8 0
Loc Addr Instruction
00276 07E9E 07FE
00276 07E9E BR 14 (M:1111)
DVC/ASS 83
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 84
Establish Base-Reg with
BALR / BASR / BAKR
• Branch and Link Reg – BALR – 05
• Branch and Save Reg – BASR – 0D
• Branch and Stack Reg – BAKR – B240
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 85
Establish Base-Reg with
BALR / BASR / BAKR
• Branch and Link Reg – BALR – 05 is old
(MVS), but it is also possible to use this type (I
made performance measuring and nearly no
differences exist between BALR and BASR)
• It is not necessary to replace BALR by BASR
within old sources
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 86
Establish Base-Reg with
BALR / BASR / BAKR
• Branch and Save Reg – BASR – 0D is newer (since 1984 MVS/XA) and the POP recommend to use BASR (less problems with BASR than with BALR under 31 and 64 addressing mode)
• Syntax and logic of programming is the same with BASR and BALR, only the OP-Codes are different
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 87
Establish Base-Reg with
BALR / BASR / BAKR
• Pgm-Sample with BALR
000000 00000 00060 69 KR8800 CSECT
70 KR8800 AMODE 31
71 KR8800 RMODE ANY
72 SAVE (14,12),,KR8800--&SYSDATE
000000 47F0 F02E 0002E 74+ B 46(0,15)
000004 28 75+ DC AL1(40)
000005 D2D9F8F8F0F06060 76+ DC CL32'KR8800--11/24/10--18
000025 C4D6D560F0F1F0F1 77+ DC CL8'DON-0101'
00002D 00
00002E 90EC D00C 0000C 78+ STM 14,12,12(13)
000032 05A0 79 BALR 10,0
R:A 00034 80 USING *,10
000034 1851 81 LR 5,1
000036 186F 82 LR 6,15
000038 1799 83 XR 9,9
84 ****************************************
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 88
Establish Base-Reg with
BALR / BASR / BAKR
• Pgm-Sample with BASR
000000 00000 00030 69 KR8890 CSECT
70 KR8890 AMODE 31
71 KR8890 RMODE ANY
72 SAVE (14,12)
000000 74+ DS 0H
000000 90EC D00C 0000C 75+ STM 14,12,12(13)
000004 0DA0 76 BASR R10,0
R:A 00006 77 USING *,R10
000006 1851 78 LR 5,1
000008 186F 79 LR 6,15
00000A 1799 80 XR 9,9
81 ***************************************
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 89
Establish Base-Reg with
BALR / BASR / BAKR • Pgm-Initialization Sample with Save-Area KR8810 CSECT
KR8810 AMODE 31
KR8810 RMODE ANY
SAVE (14,12),,KR8810--&SYSDATE--&SYSTIME-KRAWACKIDON-0101
BALR 10,0
USING *,10
LR 5,1 SAVE PARM-ADDRESS
LR 6,15 SAVE EPA
XR 9,9 CLEAR ERROR-HANDLER-REGISTER
USING WSTOA,R6 ESTABLISH ADDRESSABILITY
LA R11,WSTOAE LOAD END OF WORK-STORAGE-AREA
LA R15,WSTOA LOAD START OF WORK-STORAGE-AREA
SR R11,R15 CALCULATE LENGTH OF WSTO-AREA
STORAGE OBTAIN,LENGTH=(R11),COND=YES
LTR R15,R15 CHECK RC
BNZ EC0016 GOTO EC0016 / STORAGE OBTAIN FL
SAVEREG ST R13,4(,R1) CHAIN
ST R1,8(,R13) SAVEAREAS
LR R13,R1 SAVE A(WORKAREA)
DROP R6
USING WSTOA,R13 ESTABLISH ADDRESSABILITY
ST R11,WSTOALGT SAVE LENGTH OF WORK-STORAGE-AR
***********************************************************************
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 90
Establish Base-Reg with
BALR / BASR / BAKR • Pgm-Termination Sample with Save-Area FREEMN EQU * FREE-MAIN-ROUTINE
CL R15,=F'16' CHECK ERROR ON STORAGE OBTAIN
BE TERMS WITHOUT RELEASE STORAGE IN TC
CL R15,=F'20' CHECK ERROR ON STORAGE RELEASE
BE TERMS WITHOUT RELEASE STORAGE IN TC
STORLSE EQU * RELEASE STORAGE
L R6,WSTOALGT SAVE LENGTH OF WORK-STORAGE-AR
LR R2,R13 COPY R13 FOR STORAGE-RELEASE
DROP R13
L R13,4(,R13) LOAD ADDRESS OF OLD SAVEAREA
LR R3,R15 SAVE RC -
STORAGE RELEASE,LENGTH=(R6),ADDR=(R2),COND=YES
LTR R15,R15 CHECK RC
BNZ EC0020 GOTO EC0206 / STORAGE RLSE FAIL
LR R15,R3 RELOAD ORIGIN RC
***********************************************************************
***********************************************************************
TERMS EQU *
BSM R0,R7 SET CALLERS AMODE
FINALE RETURN (14,12),RC=(15)
***********************************************************************
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 91
Establish Base-Reg with
BALR / BASR / BAKR • Pgm-Sample Declaration ***********************************************************************
*** D E C L A R A T I O N S
***********************************************************************
DS 0D
AMODE31 DC X'80000000' 31 BIT-MODE
DS 0D
WTOA1C DC AL2(L'WTOAT1C)
WTOAT1C DC CL70'TEST-MSG‘
WTOA1L EQU *-WTOA1C
DS 0D
WTOMACL WTO TEXT=,MF=L
WTOMACLL EQU *-WTOMACL
*
*
*
***********************************************************************
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 92
Establish Base-Reg with
BALR / BASR / BAKR • Pgm-Sample Work-Storage Declaration ***********************************************************************
***********************************************************************
*
WSTOA DSECT WORK-STORAGE-AREA
DS 18F SAVE-AREA
WSTOALGT DS 1F WORK-STORAGE-AREA-LENGTH
*
EPASUBMD DS 1F ADDRESS OF KR9530 / SUB-MODULE
DS 0D
PACKFLD DS PL8 PACKED-FIELD
CHARFLD DS CL10 CHARACTER-FIELD FOR PACK
DS 0D
PACKFLD1 DS XL8 PACKED-FIELD-1
CHARFLD1 DS CL16 CHARACTER-FIELD FOR UNPACK
*
DS 0D
WTOMACE DS CL(WTOMACLL) WTO-AREA-CODE
WTOA1D DS CL(WTOA1L) WTO-AREA
*
WSTOAE EQU * LENGTH OF WORK-STORAGE-AREA
*
COPY KRAREGS
*
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 93
Establish Base-Reg with
BALR / BASR / BAKR • Branch and Stack Reg – BAKR – B240 uses a
linkage stack to save Registers, therefore it is not necessary to establish a new save area
• It is not possible to follow the SAVE-Areas within a dump because the linkage stack is not handeled over R13 (linkage stacks are also represented into a dump)
• Instead of the RETURN Macro (BALR/BASR) the termination of the program after BAKR types register save must be a PR (Program Return)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 94
Establish Base-Reg with
BALR / BASR / BAKR • Branch and Stack Reg – BAKR – B240 saves
the first Register and this Register will be used later for the Return address by the PR instruction (Program Return)
• BAKR is usually used together with PC-Routines (PC-Call)
• It is not necessary to establish a new save area because BAKR creates instead of the save area a new linkage stack
• Normally at entry you must save R14 (Return Address – see linkage conventions!
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 95
Establish Base-Reg with
BALR / BASR / BAKR • Pgm-Sample with BAKR (KR8860) KR8860 CSECT
KR8860 AMODE 31
KR8860 RMODE ANY
BAKR R14,R0
LR R10,R15 COPY EPA
USING KR8860,R10
LA R7,SPECREGS SPECIAL - REGS-SAVE
BR R7 JUMP OVER PGM-COMMENT
DC C'KR8860--&SYSDATE--&SYSTIME-KRAWACKIDON-0101'
SPECREGS EQU *
LR R5,R1 SAVE PARM-ADDRESS
LR R6,R15 SAVE EPA
XR R9,R9 CLEAR WORK-AREA-ADDRESS
***************************************************************
***************************************************************
MAIN LA R15,8
B FINALE
***************************************************************
***************************************************************
FINALE EQU * FINALE
PR
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
DVC/ASS 96
Establish Base-Reg with
BALR / BASR / BAKR
• Pgm-Abend 3 Modules with BAKR 11:36:35 IEF403I A107187A - STARTED - TIME=11.36.35 S11
11:36:35 +TEST-MSG PGM - KR8870 - BEFORE SUB-MODULE
11:36:35 +TEST-MSG PGM - KR8880 - BEFORE SUB-MODULE
11:36:35 +TEST-MSG PGM - KR8890 - THIS IS THE SUB-MODULE
11:36:36 IEA995I SYMPTOM DUMP OUTPUT
11:36:36 SYSTEM COMPLETION CODE=0C1 REASON CODE=0000000
11:36:36 TIME=11.36.35 SEQ=59485 CPU=0000 ASID=028F
11:36:36 PSW AT TIME OF ERROR 078D2000 A7000768 ILC 2 INTC 01
11:36:36 ACTIVE LOAD MODULE ADDRESS=27000660 OFFSET=00000108
11:36:36 NAME=KR8890
11:36:36 DATA AT PSW 27000762 - 05E905E9 00000000 000055F0
11:36:36 GR 0: 00011000 1: 6B52A2BF
11:36:36 2: 27001D58 3: 27001DC8
11:36:36 4: CAFFEE03 5: 00000058
11:36:36 6: A7000660 7: 27000694
11:36:36 8: 00000000 9: 27000734
11:36:36 A: A7000660 B: 27001D20
11:36:36 C: 87385D3A D: 00006F58
11:36:36 E: 0000000E F: 00000000
11:36:36 END OF SYMPTOM DUMP
11:36:36 IEF450I A107187A E01 - ABEND=S0C1 U0000 REASON=00000001
11:36:36 TIME=11.36.36
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 97
Establish Base-Reg with
BALR / BASR / BAKR • Linkage Stack 01 (from Dump!) LINKAGE STACK ENTRY 01 LSED: 7F6CA138
LSE: 7F6CA018
GENERAL PURPOSE REGISTER VALUES
00-01.... 00000008 FD00000C 00000000 00006FF0
02-03.... 00000000 00000040 00000000 007D9D84
04-05.... 00000000 007D9D60 00000000 007FF370
06-07.... 00000000 007C2FE0 00000000 FD000000
08-09.... 00000000 007D7028 00000000 007FF538
10-11.... 00000000 00000000 00000000 007FF370
12-13.... 00000000 87385D3A 00000000 00006F58
14-15.... 00000000 80FDCFB8 00000000 A7000C50
ACCESS REGISTER VALUES
00-03.... 00000000 00000000 00000000 00000000
04-07.... 00000000 00000000 00000000 00000000
08-11.... 00000000 00000000 00000000 00000000
12-15.... 00000000 00000000 00000000 00000000
PKM...... 00C0 SASN..... 028F SINS..... 0000148F
PSW...... 07850000 80000000 PSWE..... 00000000 00000000
TYPE..... 0C
BAKR STATE ENTRY
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 98
Establish Base-Reg with
BALR / BASR / BAKR • Linkage Stack 02 (from Dump) LINKAGE STACK ENTRY 02 LSED: 7F6CA260
LSE: 7F6CA140
GENERAL PURPOSE REGISTER VALUES
00-01.... 00000000 00011000 00000000 000001E8
02-03.... 00000000 27001F40 00000000 27001FB0
04-05.... 00000000 CAFFEE01 00000000 000001E8
06-07.... 00000000 A7000C50 00000000 27000C84
08-09.... 00000000 00000000 00000000 27000E1A
10-11.... 00000000 A7000C50 00000000 27001F08
12-13.... 00000000 87385D3A 00000000 00006F58
14-15.... 00000000 A7000D9A 00000000 A70008C0
ACCESS REGISTER VALUES
00-03.... 00000000 00000000 00000000 00000000
04-07.... 00000000 00000000 00000000 00000000
08-11.... 00000000 00000000 00000000 00000000
12-15.... 00000000 00000000 00000000 00000000
PKM...... 00C0 SASN..... 028F SINS..... 0000148F EAX......
PINS..... 0000148F
PSW...... 07852000 80000000 PSWE..... 00000000 27000D9A
TARG..... 00000000 A70008C4 MSTA..... 00000000 00000000
TYPE..... 0C
BAKR STATE ENTRY
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 99
Establish Base-Reg with
BALR / BASR / BAKR • Linkage Stack 03 (from Dump) LINKAGE STACK ENTRY 03 LSED: 7F6CA388
LSE: 7F6CA268
GENERAL PURPOSE REGISTER VALUES
00-01.... 00000000 00011000 00000000 000001E8
02-03.... 00000000 27001E48 00000000 27001EB8
04-05.... 00000000 CAFFEE02 00000000 000001E8
06-07.... 00000000 A70008C0 00000000 270008F4
08-09.... 00000000 00000000 00000000 27000A66
10-11.... 00000000 A70008C0 00000000 27001E10
12-13.... 00000000 87385D3A 00000000 00006F58
14-15.... 00000000 A70009E6 00000000 A7000660
ACCESS REGISTER VALUES
00-03.... 00000000 00000000 00000000 00000000
04-07.... 00000000 00000000 00000000 00000000
08-11.... 00000000 00000000 00000000 00000000
12-15.... 00000000 00000000 00000000 00000000
PKM...... 00C0 SASN..... 028F SINS..... 0000148F EAX......
PINS..... 0000148F
PSW...... 07852000 80000000 PSWE..... 00000000 270009E6
TARG..... 00000000 A7000664 MSTA..... 00000000 00000000
TYPE..... 8C
BAKR STATE ENTRY
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 100
Establish Base-Reg with
BALR / BASR / BAKR
• Register 13 without change (from TCBFSA)
USER SUBPOOL STORAGE
00006F60 00000000 00000000 00000000 00000000
00006F70 00000000 00000000 00000000 00000000
LINES 00006F80-00006FC0 SAME AS ABOVE
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 101
LE – Language Environment
• Language Environment was built to use the same runtime environment for different high level languages (COBOL / PL/I / C)
• LE provides a lot of Routines for high level languages to obtain different information (f.e. Time in UTC / Information about the Environment)
• In case of errors LE initiates a special abend handling and produces a special Dump (LE-Dump)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 102
LE – Language Environment • Assembler Modules could also use LE
• The LE-Storage-handling is very performant and therefore this could bring better system performance
• Assembler under LE could be written as LE compatible with special LE-Macros
• It is not necessary to make all Assembler Module LE compatible (Storage handling by the Assembler Module himself)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 103
LE – Language Environment
• LE uses R12 for the CAA (Common anchor area address) and therefore it is dangerous to use/modify R12 (Problem at Errors within LE compatible and Non-LE Assembler Modules if an LE-Environment exist!)
• Under LE compatible Assembler you have to specify the Module type (MAIN or Subroutine)
• LE compatible Assembler Modules must use special Macros (f.e. CEELOAD instead LOAD)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 104
LE – Language Environment
• I made in the past 3 years a lot of tests
about LE and his compatibilities
• See my test-results at next 2 pages
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 105
LE – Language Environment
First Pgm Call with Second Pgm Result
ASS LE Main CEELOAD ASS LE Sub ok
ASS LE Main CEELOAD ASS LE Main U0020 (S0C4)
ASS LE Main LOAD ASS LE Sub unpredictable
ASS LE Main CEELOAD ASS Non LE CEELOAD Error
ASS LE Main LOAD ASS Non LE ok
ASS LE Sub - - S0C4
ASS Non LE CEELOAD ASS LE Main Assembly Error
ASS Non LE CEELOAD ASS LE Sub Assembly Error
ASS Non LE LOAD ASS LE Main S0C4
ASS Non LE LOAD ASS LE Sub S0C4
ASS Non LE LOAD ASS Non LE ok
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 106
LE – Language Environment
First Pgm Call with Second Pgm Result
ASS LE Main CEELOAD PL/I Fetchable ok
ASS LE Main CEELOAD PL/I Main U0020 (S0C4)
ASS LE Main CEEFETCH PL/I Fetchable ok
ASS LE Main CEEFETCH PL/I Main U0020 (S0C4)
ASS Non LE CEELOAD PL/I Fetchable Assembly Error
ASS Non LE CEEFETCH PL/I Fetchable Assembly Error
PL/I Main CALL ASS LE Sub ok
PL/I Main CALL ASS Non LE ok
PL/I Main FETCH ASS LE Sub ok
PL/I Main FETCH ASS Non LE ok
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 107
LE – Language Environment
• LE compatible Main-Assembler-Program KR9523 CEEENTRY PPA=LEPPA,MAIN=YES,BASE=(10),AUTO=DSALGTH
LR 5,1 SAVE PRM-ADDR
L 4,0(5) POINT TO PARAMETER
…
• Assembler Code here
…
FINALE CEETERM MF=(E,CTERME),RC=(15)
DS 0D
CTERML CEETERM MF=L
CTERMLL EQU *-CTERML
LTORG
LEPPA CEEPPA , LE PROGRAM PROLOG AREA / PPA
CEECAA , COMMON ANCHOR AREA / CAA
CEEDSA , DYNAMIC SAVE AREA / DSA
CTERME DS CL(CTERMLL) CEETERM-MACRO
DS 0D
DSALGTH EQU *-CEEDSA LENGTH OF DSA
END KR9523
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 108
LE – Language Environment
• Under an Existing LE Environment it is
not allowed to
– use ESTAE and ESPIE Routines
– delete modules containing COBOL or PL/I
– change Register 12 (CAA) – the problem
will take effect if an error occurs and the
error-handling gives control back without
restoring the old value of R12
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 109
Dynamic linkage / Static linkage
• It is often better to split a program into one or more submodules instead of using more than one base register
• Within an Assembler module a base register is only able to address one page (4 K / 4096 Bytes)
• The different parts of a splitted module could link together with the linkage editor process as a static module, or they could build separate parts but then they must be loaded at execution time through a process called program fetch
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 110
Dynamic linkage / Static linkage
• Static linked modules are often very large and if something changes in a submodule it is necessary to reassemble and link the submodule and also to relink the main-module
• Static linkage is not very flexible but Dynamic linkage could bring more errors (S806 Abend) and the control by change-system-software is more difficult
• A solid solution depends on the program design, and you often have a lot of ways to obtain a high performance application or program
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 111
Dynamic linkage / Static linkage
• Next part of presentation will show the different ways to build an application with more than one program and how it is possible to bring the modules together
• The whole part of Dynamic linkage / Static linkage is since BP V3 in the Document:
– Dynamic Linkage V1.0 (PPT/PDF)
– LLA PLUS „Vom Glück das richtige Module ...“
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 112
Assembly / Linkage Editor
• High Level Assembler and Linkage Editor are base elements of the z/OS and therefore delivered together and dependent to the z/OS Version and Release level
• To install the z/OS it is necessary to assemble some parts of source (Exits and Objects delivered as sources) and also to build the load-modules by using the linkage editor
• Normally Assembler and Linkage Editor are defined under the SMP/E (System Modification Program), so they can be used for the system installation
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 113
Assembly / Linkage Editor
• To assemble and link a program the most installations uses batch jobs
• To make this process comfortable IBM or the System programmer creates some JCL-Procedures for general usage
• At some installations it is possible to combine the process from assembler, link and execution step into one logical procedure (like at IBM's learning environment)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 114
Assembly / Linkage Editor
• It is an advantage to have knowledges about assemble and linkage editor to use all different features
• Assembler and linkage editor produce a lot of output; try to understand this listings it could help you to save time and to analyze errors
• IBM Manuals give a lot of information about assembly and linkage editor (see part manuals and documents)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 115
Tips and Tricks
• PC Assembler is complete different to z/OS Assembler (nearly nothing is equal)!
• It is possible to use two freewares to simulate z/OS Assembler on PC's (PC370 / PC390)
• Under PC (Windows or Linux) with an environment called Hercules it is also possible to use z/OS Assembler
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 116
Tips and Tricks
• To obtain information from z/OS control blocks use the official DSECTS presented within Data Area Manuals and try to avoid absolute displacements
• Keep a program easy; normally the code should not be larger than 4096 Bytes
• To obtain more than 16 GPRs it is possible to use all 16 64 Bit Register as 2 Regs; load parts into the left range (bit 0 – 31) and use only the 31 bit Addressing mode (bit 32 – 63)
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 117
Tips and Tricks
• Use often the same register for the same action
• Try to create a lot of small program parts to obtain code that is useable within different programs
• Use the functionality of Return Codes!
• Write comments if you make "strange" things within your program (for you and your follower which must debug or developp your program)
• Have fun with programming!
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 118
z/OS Control Blocks
• z/OS has a lot of Control Blocks
• You could find the description of the most Control Blocks within the Data Areas Manuals
• A short description of some urgent Control Blocks follows at the next pages
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
z/OS Control Blocks
DVC/ASS 119
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
z/OS Control Blocks
DVC/ASS 120
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
z/OS Control Blocks
DVC/ASS 121
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
z/OS Control Blocks
DVC/ASS 122
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
z/OS Control Blocks
DVC/ASS 123
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
z/OS Control Blocks
DVC/ASS 124
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 125
IBM Manuals and other Documents
• Pgm-Instructions
– z/Architecture Principles of Operation – SA22-7832
– z/Architecture Reference Summary – SA22-7871
• Assembler (HLASM and Linkage Editor)
– HLASM Programmer's Guide – SC26-4941
– HLASM Language Reference – SC26-4940
– HLASM …
• System Macros
– MVS Programming: Assembler Services Guide – SA22-7605
– MVS Programming: Assembler Services Reference, Volume 1 to x – SA22-7606
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 126
IBM Manuals and other Documents
• System Macros (Authorized)
– MVS Programming: Authorized Assembler Services Guide – SA22-7608
– MVS Programming: Authorized Assembler Services Reference, Volume 1 to x – SA22-7609
• Storage / Addressability
– MVS Programming: Extended Addressability Guide – SA22-7614
• Linkage Editor and Binder
– MVS Program Management: Users Guide and Reference – SA22-7643
– MVS Program Management: Advanced Facilities – SA22-7644
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 127
IBM Manuals and other Documents
• z/OS Control Blocks
– z/OS MVS Data Areas Vol 1 to x
• A good Book to learn Assembler
– Mainframe Assembler Programming by Bill Qualls: http://www.billqualls.com/assembler/index.html
– Contains PC 370 Assembler and Exercises
• Link to the PC390 Assembler
– http://www.z390.org
2005 System z
2001 z/OS
2000 z/Series
1996 OS/390
HLASM
1990 S/390
1988 MVS/ESA
1983 MVS/XA
Assembler H
1974 MVS
Assembler /370
1970 S/370
1967 MVT
1966 MFT
1964 S/360
Assembler /360
15.12.2010 Assembler Bonus Pack by DK
DVC/ASS 128
IBM Manuals and other Documents
• Dumps and Program-Listings
– Dump_KR8830 – Sample Dump Linkage Conventions
– Dump_KR8890 – Sample Dump BAKR
– Prepared_Dump_KR8830 – Prepared Dump
– Assembly-Listings KR8810/KR8820/KR8830
– Assembly-Listings KR8870/KR8880/KR8890
– LE-Dump Sample
DK/P00000216/20101111/20101215_Assembler_Bonus_V1