This course is aimed at system programmers, software programmers and advanced application programmers who need the ability to write and debug assembler programs and better understand the software that their installation uses.
- Have some basic assembler programming knowledge, attendance on our Assembler Programming Part 1 course will provide this.
- Be able to edit files using ISPF/PDF.
- Have an understanding of JCL.
4 days. Hands on.
This course is designed to build on the basic Assembler Programming Part 1 course to facilitate the development of more sophisticated programs.
Upon completion of this course attendees will be able:
- Use various diagnostic tools such as SNAP, ESPIE and ESTAE.
- Use branch tables.
- Execute embedded subroutines.
- Execute subroutines dynamically.
- Understand sub-tasking principles.
- Perform bit manipulation to change the setting of individual bits in a byte.
- Use shift instructions.
- Use Basic Access Method processing for non-VSAM files.
- Process VSAM files.
- Acquire storage areas within the Address Space.
- Understand the implications of coding LE compliant Assembler.
- Understand the techniques of channel programming.
- Code their own macros.
Module 1 – Basic Assembler Revision
Review the Basic Course content.
Explain the significance of AMODE and RMODE.
Review the instruction set.
Exercise to demonstrate the impact of AMODE/RMODE.
Module 2 – Diagnostic Aids
Using the SNAP macro.
Exercise using SNAP.
Module 3 – Branch Tables
Why are COND CODEs multiples of 4?
Structure of a branch table.
Exercise using a branch table.
Module 4 – Static Sub-Routines
Where are static routines located?
Obtaining the EXEC statement PARM field.
What is a VCON?
Use of BAL, BALR, BAS, and BASR.
Using the CALL macro.
The role of the Program Binder / Linkage Editor.
Changing from AMODE(24) to AMODE(31).
Potentially three exercises.
Module 5 – Dynamic Sub-Routines
How are dynamic routines located?
CALL Macro revisited.
Potentially two exercises.
Module 6 – Sub-Tasks
What is a sub-task?
Module 7 – Boolean Instructions
What are Boolean functions?
NR - AND Register (24/31-bit).
OR – OR Register (24/31-bit).
XR – Exclusive OR Register (24/31-bit).
NGR - AND Register (64-bit).
OGR – OR Register (64-bit).
XGR – Exclusive OR Register (64-bit).
N - AND Register with Storage (24/31-bit).
O – OR Register with Storage (24/31 bit).
X – Exclusive OR Register (24/31-bit).
NG - AND Register with Storage (64-bit).
OG – OR Register with Storage (64-bit).
XG – Exclusive OR Register with Storage (64-bit).
NI - AND Immediate (24/31-bit).
OI – OR Immediate (24/31-bit).
XI – Exclusive OR Immediate (24/31-bit).
NC - AND Character (24/31-bit).
OC – OR Character (24/31-bit).
XC – Exclusive OR Character (24/31-bit).
TM - Test Under Mask.
An exercise in bit manipulation.
Module 8 – Shift Instructions
How communication is established between CICS and DB2.
SLA – Shift Left Arithmetic.
SLDA – Shift Left Double Arithmetic.
SLDL – Shift Left Double Logical.
SLL – Shift Left Logical.
SRA – Shift Right Arithmetic.
SRDA – Shift Right Double Arithmetic.
SRDL – Shift Right Double Logical.
SRL – Shift Right Logical.
An exercise to test switches for validation messages.
Module 9 – non-VSAM I/O Processing
The difference between BSAM and QSAM.
The short block issue.
An exercise to read a data set.
Module 10 – VSAM File Processing
At least one exercise in VSAM file processing.
Module 11 – Storage Management
Why might this be necessary?
An exercise is storage acquisition.
Module 12 – Language Environment
Accessing a parameter string.
Module 13 – Coding Macros
What is a macro?
Where are macros stored?
How are macros located?
MACRO and MEND Statements.
Global versus Local symbols.
AIF and AGO statements.
An exercise in coding a macro.