Home Page of Oakwood Computing Ltdhome contact us

about Oakwood Computing Ltd
new recruits and graduate training schemes
programming languages, report and file manipulation utilities
z/OS, OS/390, MVS, CICS, DB2, IMS, ISPF courses
UNIX, Linux, VSE courses
Oakwood Computing Ltd
1 Dornton Road
South Croydon
Surrey CR2 7DR
UK
Tel: +44 (0) 20 8686 7266
courses@oakwoodcomputing.co.uk
Updated 10 February, 2004

 

Using Assembler

Duration: 5 days

Audience: Experienced programmers who need to read and/or modify Assembler code

Prequisites: Good working knowledge of a programming language

Objectives: Top Contents

On successful completion of this course each student will be able to:

* describe how registers are used
* distinguish between machine, assembler and macro instructions
* given an instruction format, explain how the components are used
* explain how the components of instruction addresses are used
* describe how to interpret the assembly and link-edit listings
* list the different data types which are commonly used in assembler programs
* use instructions which define data
* list the syntax rules for coding
* use the common machine instructions for manipulating data
* use instructions which perform binary and packed arithmetic
* use instructions which control program execution
* explain how program linkage is performed in an Assembler environment
* use macros which process VSAM and non-VSAM files
* describe how VSAM files are declared using ACBs
* explain how the EXLST macro handles errors
* code RPL macros to access VSAM files
* explain how error codes are returned to the program
* code OPEN and CLOSE macros
* process VSAM files using GET, PUT, POINT, ERASE, ENDREQ macros
* process BDAM files (optional, archaic, but occasionally required)
* explain how variable length records are created and retrieved
* use SHOWCB and MODCB for variable length records
* explain how SHOWCB can retrieve useful data
* use TESTCB to test fields in control blocks
* use GENCB macros to generate control blocks
* use DSECTs with tables and arrays
* interpret the output from a conditional assembly
* describe tha layout and usage of the linkage stack
* given a dump of an assembler program, identify the failing instruction and find the contents of data fields

* describe the structure of a 64-bit address space
* use G and GF instructions to process full and half register values


Contents: Top Objectives

Assembler overview
The assembly process; instruction types: machine, assembler, macro; libraries; addressing modes; register usage; instruction formats; syntax rules; comments.

Defining data
Using DS and DC; defining literals and symbols; alignment, repeated occurrences; data types: character, zoned, packed, binary, negative forms of numbers.

Assembler output
Printed diagnostics and their use; XREF tables; the external symbol directory; relocation dictionary and source and object listings.

Basic processing instructions
Comparison instructions; data manipulation and conversion; transfer of control: branch and link, BAL, BALR, branch and save, BAS, BASR, loops; editing fields; arithmetic and logical operations; subroutines and CALL, standard linkage conventions, passing parameters.

File processing instructions
MVS (OS) and VSAM macros and their use: DCB, ACB, EXLST, RPL, OPEN, GET, PUT, CLOSE, POINT, MODCB, SHOWCB, etc; BDAM considerations (optional).

Advanced techniques
Table handling; using external tables; DSECTs; translation; ORG; shifting; string instructions; conditional assembly; 31-bit considerations: AMODE, RMODE; dumps and debugging, use of PSW; hints and tips. GENCB, GETMAIN, FREEMAIN, execute and list form of macros. Address space switching, linkage stack, BAKR.

64-bit Assembler introduction
Address space structure; the bar; memory objects: usable area, guard area; tokens; 64-bit binary operations; G and GF instructions; AMODE 64; MEMLIMIT in JCL; parameter lists; savearea formats; IARV64: GETSTOR, DETACH, PAGEFIX, UNPAGEFIX, PAGEIN, PAGEOUT, DISCARDATA, CHANGEGUARD, LIST; SAM31, SAM64.

Top Objectives Contents