assembler bonus pack - krawacki.ch · assembler bonus pack pgm language 1 is assembler peter...

128
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

Upload: lynhan

Post on 18-Jan-2019

315 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 2: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 3: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 4: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 5: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 6: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 7: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 8: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 9: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 10: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 11: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 12: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 13: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 14: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 15: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 16: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 17: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 18: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 19: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 20: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 21: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 22: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 23: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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 …)

Page 24: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 25: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 26: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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!

Page 27: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 28: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 29: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 30: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 31: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 32: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 33: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 34: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 35: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 36: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 37: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 38: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 39: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 40: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 41: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 42: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 43: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 44: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 45: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 46: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 47: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 48: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 49: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 50: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 51: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 52: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 53: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 54: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 55: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 56: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 57: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 58: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 59: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 60: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 61: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 62: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 63: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 64: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 65: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 66: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 67: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 68: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 69: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 70: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 71: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 72: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 73: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 74: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 75: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 76: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 77: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 78: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 79: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 80: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 81: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 82: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 83: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 84: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 85: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 86: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 87: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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 ****************************************

Page 88: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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 ***************************************

Page 89: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

***********************************************************************

Page 90: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

***********************************************************************

Page 91: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

*

*

*

***********************************************************************

Page 92: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

*

Page 93: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 94: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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!

Page 95: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 96: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 97: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 98: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 99: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 100: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 101: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 102: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 103: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 104: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 105: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 106: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 107: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 108: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 109: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 110: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 111: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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 ...“

Page 112: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 113: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 114: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 115: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 116: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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)

Page 117: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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!

Page 118: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 119: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 120: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 121: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 122: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 123: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 124: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 125: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 126: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 127: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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

Page 128: Assembler Bonus Pack - krawacki.ch · Assembler Bonus Pack Pgm Language 1 is Assembler Peter Dennler Credit Suisse AG, Hagenholzstrasse 20/22, CH-8050 Zürich ... • Assembly / Linkage

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