Assembler Programming Part 2
Code: ASM2Description
This course is designed to build on the basic Assembler Programming Part 1 course to facilitate the development of more sophisticated programs.
Audience
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.
Prerequisites
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.
Objectives
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.
Topics
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.
DELETE 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.
ENDREQ Macro.
SHOWCB Macro.
GENCB Macro.
MODCB Macro.
At least one exercise in VSAM file processing.
Module 11 – Storage Management
Why might this be necessary?
RE-ENTRANT Code.
GETMAIN Macro.
FREEMAIN Macro.
STORAGE Macro.
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.
MNOTE.
MEXIT.
Macro comments.
System symbols.
Global versus Local symbols.
SETA.
SETB.
SETC.
AIF and AGO statements.
An exercise in coding a macro.
Price (ex. VAT)
Duration
Delivery methods
- Classroom
- On-site (at your location)
- Virtual (instructor online)