Assembler Programming Part 2

Assembler Programming Part 2


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.


Delegates should:

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

Course Objectives

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.

Course Content

Module 1 – Basic Assembler Revision
Review the Basic Course content.
Revisit addressability.
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.
SPIE/ESPIE routines.
STAE/ESTAE routines.
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?
LINK Macro.
LOAD Macro.
XCTL Macro.
CALL Macro revisited.
Potentially two exercises.

Module 6 – Sub-Tasks
What is a sub-task?
ATTACH macro.
DETACH macro.
POST macro.
WAIT macro.

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.
DCB Difference.
READ Macro.
WRITE Macro.
FIND Macro.
STOW Macro.
An exercise to read a data set.

Module 10 – VSAM File Processing
OPEN Macro.
GET Macro.
PUT Macro.
CLOSE Macro.
ACB Macro.
RPL Macro.
EXLST Macro.
GENCB Macro.
MODCB Macro.
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
Compatibility considerations.
Register conventions.
Accessing a parameter string.
Mode considerations.
LE Macros.

Module 13 – Coding Macros
What is a macro?
Where are macros stored?
How are macros located?
MACRO and MEND Statements.
Symbolic parameters.
Positional Parameters.
Keyword Parameters.
Modal statements.
Concatenation rules.
Conditional Assemblies.
Macro comments.
System symbols.
Global versus Local symbols.
AIF and AGO statements.
An exercise in coding a macro.

Public Courses

On-Site Courses

Can't attend one of our public classes? Booking for multiple people?

All our courses are available on your site! Delivered for your staff, at your premises.

Contact us to find out more...