Advanced Assembler Language Coding Workshop
(ES35G)
Overview
This course provides instruction and practice in the use of the more complex S/390 Assembler Language facilities for the experienced assembler language programmer. The course includes a discussion of standard linkage conventions, use of BSAM/QSAM and selected system macros, the macro definition language, and reentrant coding considerations.
Emphasis is placed on enhancing skills in problem resolution through analysis of more complex system-provided dumps.
Audience
This course is designed for application programmers and beginning system programmers who code, maintain, and debug application support programs or subroutines written in S/390 assembler language.
Prerequisites
You should be able to:
- Code and debug simple S/390 assembler language programs
Objective
- Identify data management considerations and access methods
- Code assembler language programs which:
- Conform to standard linkage conventions using save area chaining
- Define and use BSAM/QSAM datasets through standard I/O macros
- Define and execute user macros which contain:
- Positional and/or keyword parameters
- Fixed or variable entry parameter lists
- Conditional assembly logic
- Use variable length storage operations (that is, EX, MVCL, and so on)
- Employ more complex instructions (that is, TR, TRT, BXLE, and so on)
- Access JCL parameter data
- Employ LE date/time handling services
- Identify reentrant coding considerations and dynamic storage acquisition
Course Outline
Day 1
- (00:15) Welcome
- (01:00) Unit 1: Review
- (00:15) Unit 2: Assembler instructions
- (01:45) Unit 3: Linkage
- (01:30) Unit 4: LE date/time handling
- (02:30) Exercise 1: PARM handling and search
Day 2
- (00:15) Lab review
- (03:00) Unit 5: Access methods: BSAM/QSAM
- (03:00) Exercise 2: File handling
Day 3
- (00:15) Lab review
- (00:30) Unit 6: Assembler compile-time options
- (00:30) Unit 7: SNAP dumps
- (03:30) Unit 8: Macros and the Conditional Assembly Language
- (02:30) Exercise 3: Macro modification
Day 4
- (00:25) Lab review
- (01:15) Unit 9: Miscellaneous instructions
- (00:25) Unit 10: Floating point data
- (00:25) Unit 11: Reentrant coding
- (00:15) Class wrap-up