(a 7-day course: 4 + 3)
Many routines and/or O.E.M. products are written in assembler and need to be maintained by systems programmers and/or
A good understanding of assembler and machine instructions is also an asset for debugging programs written in any
high-level language (COBOL, PL/I, etc.).
On completion of this course, the students will have gained fundamental assembler programming and debugging skills that
are applicable for both MVS-OS/390-z/OS and VM-z/VM assembler language programmers.
The majority of instructions used by application and systems programmers are explained. Students learn to read and
maintain most assembler language programs, as well as use underlying machine instructions to locate programming errors.
Through error analysis and debugging techniques, students debug programs using dumps. Programming techniques important to
writing reliable and maintainable code are stressed.
Via the different topics of this course the students will be able to integrate basic assembler skills into a usable set
of practical skills.
Finally, the students will have gained an indepth insight into mainframe architectures.
- System programmers
- Other programmers/analysts who could make efficient use of assembler
You need a working knowledge of a MVS-OS/390-z/OS and/or VM/CMS environment.
You should already have programming skills i.e. know at least one programming language.
The students must have access to a MVS, OS/390 or z/OS system, and be able to logon under TSO.
- Course contents
- Mainframe architecture
- Storage organization
- Data representation : EBCDIC, zoned decimal, packed decimal, fixed point, floating point
- Assembler instructions
- Machine instructions formats
- Linkage conventions
- Link Editor and Binder
- Extended mnemonic instructions
- Program checks: operation exception, privileged-operation exception, execute exception, protection exception,
addressing exception, specification exception, data exception, fixed-point overflow, fixed-point divide exception,
decimal-overflow exception, decimal-divide exception, HFP-exponent-overflow exception, HFP-exponent-underflow exception,
HFP-significance exception, HFP-floating-point divide exception, segment-translation exception, page-translation
- Program Status Word (PSW)
- QSAM macro instructions : OPEN, DCB, CLOSE, GET, PUT
- Coding assembler source statements
- Terms, expressions, literals
- Boundary alignment
- Program sections: CSECTs and DSECTs
- Program entry point
- The assembler listing
- Address constants (ACONs and VCONS), Relocation Dictionary (RLD)
- External symbols, External Symbols Dictionary (ESD)
- Passing arguments to a program
- Machine instructions : load, store, move, insert, translate, branch, convert, decimal, test, compare, logical, shift
and fixed-point instructions
(Note : privileged and floating-point instructions are outside the scope of this course.)
- User macro definitions
- Condition assembly language: variable symbols, SET symbols, AGO, AIF, ...
- Dynamic storage allocation
- System macro's : SNAP, ABEND, SPIE, WTO, TPUT, TGET, GETMAIN, FREEMAIN, STORAGE, ...
- Serially reusable and reentrant coding
- 31-bit addressing (AMODE and RMODE)
- Static call versus dynamic calls (LOAD, LINK, ATTACH, ..)
- Linkage stack
- Access registers and AASF
MVS OS/390: High Level Assembler
Datatrain Course Assembler S/390 Basic
Datatrain Course Assembler S/390 Advanced