Assembler Programming

Course:  MFAP
Duration:  5 Days
Level:  I
Course Summary

This is an entry level Assembler Programming workshop with a Commercial Application bias. Topics range from Syntax and the Assembly processing, through to code a basic application program including file processing. Whilst the emphasis is on 24/31-bit instructions, the newer 64-bit instruction set is discussed as appropriate. The workshop content is biased towards z/OS, but can be adapted to suite z/VSE if required.

« Hide The Details
Topics Covered In This Course

Assembler documentation

  • Discusses the various IBM manuals
  • Describes the Assembly process
  • Introduces the elements of the assembly listing

Hardware appreciation

  • Describes the structure of Virtual Storage,
  • Provides AMODE / RMODE definitions
  • General Purpose Registers and the associated conventions
  • Introduces the Program Status Word (PSW)
  • Describes addressability and relocation

Getting Started

  • Assembler statement syntax
  • CSECT statement
  • Save Areas,
  • BAKR ? Branch and Stack Instruction
  • BASR ? Branch and Save Instruction
  • BR ? Branch on Register Instruction
  • L ? Load instruction
  • LA ? Load Address Instruction
  • LG ? Load Instruction (64-bit)
  • LM ? Load Multiple Instruction
  • LMG ? Load Multiple Instruction (64-bit)
  • PR ? Program Return Instruction
  • ST ? Store Instruction
  • STG ? Store Instruction (64-bit)
  • STM ? Store Multiple Instruction
  • STGM ? Store Multiple Instruction (64-bit)
  • USING ? Assembler statement,
  • END ? Assembler statement
  • PRINT ? Assembler Statement
  • TITLE ? Assembler Statement

Data areas

  • DC ? Declare Constant Assembler statement
  • DS - Define Storage Assembler statement
  • Literals
  • EQU ? Assembler statement
  • Simulated data structures (as per COBOL and PLI)
  • COPY ? Assembler statement
  • Placement of data areas

Diagnostic Aids

  • Using the WTO macro
  • Forcing an S0C1 ABEND
  • Using the ABEND Macro
  • Using the SNAP Macro
  • Investigating an S0C7 ABEND

Non-VSAM queued I/O macros

  • The difference between BSAM and QSAM
  • OPEN Macro
  • CLOSE Macro
  • DCB Macro for both input and output sequential files
  • GET Macro ? Move Mode
  • GET Macro ? Locate Mode
  • PUT Macro ? Move Mode
  • PUT Macro ? Locate Mode

Using storage

  • MVC ? Move Character Instruction
  • MVI ? Move Immediate Instruction
  • MVCL ? Move Character Long Instruction
  • MVN ? Move Numerics Instruction
  • MVO ? Move with Offset Instruction
  • MVZ ? Move Zones Instruction
  • EX ? Execute Instruction

Decision making

  • PSW format,
  • Condition Codes
  • BC ? Branch on Condition Instruction
  • BCR ? Branch on Condition Register Instruction
  • Extended mnemonics
  • CLC ? Compare Logical Character Instruction
  • CLCL ? Compare Logical Character Long Instruction
  • CLI. ? Compare Logical Immediate Instruction
  • BCT ? Branch on Count Instruction
  • BCTG ? Branch on Count Instruction (64-bit)
  • BCTGR ? Branch on Count Register Instruction (64-bit)
  • BCTR ? Branch on Count Instruction
  • C ? Compare Instruction
  • CH ? Compare Half-word Instruction
  • CR ? Compare Register Instruction

Uing registers

  • IC ? Insert Character Instruction
  • ICM & ICMH? Insert Character under mask Instructions
  • LH ? Load half-word Instruction
  • LGR ? Load Register (64-bit)
  • LR ? Load Register
  • LTR ? Load and Test Register
  • STC ? Store Character Instruction
  • STCM & STCMH ? Store Character under Mask Instructions
  • STH ? Store Half-word instruction

Redefining storage

  • DSECT ? Assembler statement
  • ORG ? Assembler statement

Data Conversion

  • PACK ? Pack Instruction
  • UNPK ? Unpack Instruction
  • CVB ? Convert to Binary Instruction
  • CVBG ? Convert to Binary Instruction (64-bit)
  • CVD ? Convert to Decimal Instruction
  • CVDG ? Convert to Decimal Instruction (64-bit)
  • OI ? Or Immediate instruction
  • What constitutes a valid decimal sign
  • TR ? Translate instruction
  • TRT ? Translate and Test instruction

Binary integer arithmetic

  • A ? Add instruction
  • AG ? Add instruction (64-bit)
  • AGR ? Add Register Instruction (64-bit)
  • AH ? Add Half-word Instruction
  • AR ? Add Register Instruction
  • D ? Divide Instruction
  • DR ? Divide Register Instruction
  • M ? Multiply Instruction
  • MH ? Multiply Half-word Instruction
  • MR ? Multiply Register Instruction
  • S ? Subtract Instruction
  • SG ? Subtract Instruction (64-bit)
  • SGR ? Subtract Register Instruction (64-bit)
  • SH ? Subtract Half-word Instruction
  • SR ? Subtract Register Instruction

Decimal arithmetic

  • PACK ? Pack Instruction
  • AP ? Add Packed Instruction
  • CP ? Compare Packed Instruction
  • DP ? Divide Packed Instruction
  • Edit patterns
  • ED ? Edit Instruction
  • EDMK ? Edit and Mark Instruction
  • MP ? Multiply Packed Instruction
  • SP ? Subtract Packed Instruction
  • SRP ? Shift and Round Packed Instruction
  • ZAP ? Zero and Add Packed Instruction

File Processing (ESDS)

  • ACB Macro
  • ENDREQ Macro
  • EXLST Macro
  • GENCB Macro
  • MODCB Macro
  • OPEN Macro
  • CLOSE Macro
  • GET Macro
  • PUT Macro
  • RPL Macro
  • SHOWCB Macro

Appendix ? The Linkage Editor / Program Binder

  • Overview of functionality
  • Purpose of SYSLIN
  • Purpose of SYSLMOD
  • The INCLUDE statement
  • The NAME Statement
  • Brief description of other statements
  • Brief description of PARM options
What You Can Expect

At the completion of this workshop, students will know and understand how to use the IBM Assembler Programming Language and be able to:

  • Access the correct manuals
  • Explain the general syntax and structure of the language
  • Explain register structure
  • Explain how data is addressed in storage
  • Demonstrate the ability to start and end programs correctly
  • Select and use appropriate instructions for moving data between registers and storage
  • Select and use appropriate instructions for moving data around storage
  • Use appropriate instructions to alter the logic flow of a program.
  • Perform binary integer arithmetic
  • Perform decimal arithmetic
Who Should Take This Course

Attendees could be: New System Programmers, Technical Support and Software Programmers and Application Programmers who need the ability to write and debug Assembler Language programs and better understand the software that their installation uses.

Recommended Prerequisites

Participants will need to be able to edit data using TSO/ISPF and have sufficient JCL knowledge to deal with any issues which may arise when performing the exercises. Previous programming experience would be useful, but not essential.

Training Style

Lecture with extensive practical exercises.

« Hide The Details
Related Courses
Code Course Title Duration Level
REXX Programming Workshop
4 Days
PL/I Programming
5 Days
Assembler Programming, Part 2
4 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]