Advanced Assembler Language Programming
Weekly programming exercises will introduce a number of advanced z/OS assembler language programming techniques. In particular, this class will provide an opportunity to develop z/ OS assembler code that uses tables, lists and linked lists, z/OS units of work such as TCB’s and multitasking, z/OS assembler techniques and services to provide high levels of availability, z/OS assembler instructions and techniques for serialization, z-architecture instructions, z/OS multitasking using non-privileged system services, programs with multiple CSECTs, and re-entrant code. The exercises used in the class will allow the student to continue to develop good practices for designing, coding and testing well-structured and well-documented z/OS assembler code.
In particular, this class will expose the student to and provide an opportunity to develop z/OS assembler code that uses:
-
Tables, lists, and linked lists.
-
z/OS units of work such as TCBs and multi-tasking.
-
z/OS assembler techniques and services to provide high levels of availability (e.g. recovery routines)
-
z/OS assembler instructions and techniques for serialization (e.g. CS instruction, , ENQs, Latches, and Locks)
-
z architecture instructions that have been more recently added to the instruction set and are of interest to the application programmer (e.g. BASR, BASM, branch relative instructions, etc.)
-
z/OS multi-tasking using non-privileged system services (e.g. ATTACH/DETACH, WAIT/POST, etc.)
-
Programs with multiple CSECTs (e.g. use of the binder, passing parameters and data using data areas, etc.)
-
Re-entrant code; the student will continue to use and develop expertise in designing and coding re-entrant programs
The exercises used in the class will allow the student to continue to develop good practices for designing, coding, and testing well structured and well documented z/OS assembler code. In addition, the student will have the opportunity to practice debugging and reading existing z/OS assembler code. This approach is used to simulate a job assignment where z/OS assembler code is being used or modified, but new development may not be using z/OS assembler language.