Visão Geral
O Curso Mainframe Assembler fornece uma introdução à linguagem Assembler de mainframe. O Curso Mainframe Assembler é projetado para desenvolver as habilidades adequadas para escrever e/ou manter programas e rotinas escritas em Linguagem Assembler. A ênfase é colocada no aprimoramento de habilidades na resolução de problemas por meio de análise de interrupção de verificação de programa e leitura de dump.
Publico Alvo
O Curso Mainframe Assembler é ideal para programadores de aplicativos e/ou programadores de sistemas iniciantes que codificam, mantêm e/ou depuram programas ou sub-rotinas de suporte a aplicativos escritos em linguagem Assembler.
Conteúdo Programatico
Introduction to Assembler Language
- Types of Assembler Statements
- Number systems
- Decimal number system
- Hexadecimal number system
- Conversion Formats
- Addition of Binary And Hexadecimal Numbers
- Bytes, Word And Halfword
- Representation of Negative Binary Numbers
- How Numbers are Stored in Different Formats
- General Assembly Process
JCL for running an Assembly language program
- Using IBM Supplied Procedures
- System Library Names and their Usage
- Assembly time Options
Assembly Language Format
- (Label, Operation Code, Operand Fields, Comments, Continuation Column, Sequence Numbers)
- Registers, Memory and its Usage
- YREGS Macro
- Defining Storage in Memory (DC and DS instructions)
- Load (L instruction)
- Add and Subtract (A and S instructions)
- Store (ST instruction)
- Halting Execution
- Literal constants – F, H, C, P, D, A, V, X, B
Addressing
- Base register, Index register, Displacement
- Types of Instructions - RX, RR, RS, SS, SI
- Two byte, four byte and six byte instruction formats
- RR Type Instruction (AR, SR, MR, DR, LR instructions)
- RX Type Instruction (A,S,M,D,L,ST instructions)
- Effective Addresses
- BALR/BASR and USING Statement
- Analyzing Program Object Listing
- (Identifying Location Counter, Op-Code, Operands, Data)
- Putting an Address into a Memory Location
- Load Address (LA instruction)
- More Notes on Addressing
- IBM System 370 Instruction Formats
- Putting together concepts such as (Self-Defining Terms, Location Counter,
- Literals, Absolute versus Re-locatable Expressions; USING, DROP, START, CSECT,
- ENTRY; EQU, DC, DS, DSECT, ORG, LTORG, CNOP, END), Condition Code
- Other Assembler directives such as TITLE, EJECT, SPACE, PRINT, END
- Addressing Long Programs
QSAM File Handling
- Macros used for QSAM file handling
- DCB, MACRF, OPEN, CLOSE, PUT, GET
Character String Manipulation
- Declaration Of Character Strings
- Move Character (MVC instruction)
- Logical Comparisons (CLC instruction)
- Character Literals
- Immediate Instruction (MVI and CLI instructions)
Arithmetic Instructions
- LPR, LNR and LCR Instruction
- Halfword Instructions (AH, SH, LH ….instructions)
- Multiply Instruction (M, MR instruction)
- Divide Instruction (D, DR instruction)
Compare and Branch Instructions
- Condition Code And Branching
- Arithmetic And Condition Code
- Branch Instruction (BC And BCR)
- More Complicated Masks
- Extended Mnemonics And Arithmetic Instruction
- Load And Test Register (LTR)
- Compare Instruction (C instruction)
- Compare And Compare Register (CR instruction)
- Compare Halfword (CH instruction)
- List of Extended Mnemonics After Compare Instruction
Testing and Debugging Errors In An Assembler Program
- Reading / Analyzing Dump
Passing Parameter Data from JCL to Program
- EX Instruction
Character Strings Revisited
- Array Of Character Strings
- Arrays Of Heterogeneous Data
- Looping Through A Character String
- MVCL, CLCL Instructions
- TR, TRT Instructions (Validating Data, Translating Data Strings)
Packed Decimal Numbers
- Declaration (Definition) of Packed Decimal Numbers
- Packed Decimal Operations And Formats
- Add Packed (AP instruction)
- Subtract Packed (SP instruction)
- Zero And Add Packed (ZAP instruction)
- Multiplication Of Packed Decimal Numbers (MP instruction)
- Divide Packed (DP instruction)
- Compare Packed (CP instruction)
- Arrays Of Packed Decimal Numbers
- Converting Number Data From One Format to Another
- (PACK, UNPK, CVB and CVD instructions)
- ED and EDMK Instructions
Table Handling & Table Lookup Techniques
- BCT and BCTR Instructions
- Multi-level Tables/Arrays – Defining And Searching
- Address Modification
- Index Register Modification
- Using An Index Register with An Explicit Base Register
- Base Register Modification
- BXLE and BXH Instruction
Characteristics Of A Good Assembler Language Program
Subprograms
- Control Sections
- Branching To And Returning From A Subprogram
- Linkage conventions
- Branch & Link (BAL), And Branch & Link Register (BALR)
- Branch & Save (BAS), And Branch & Save Register (BASR)
- Load Multiple And Store Multiple (LM and STM)
- Passing Parameters
- Saving Register Contents
- Establishing Addressability
- Returning A Value From A Function
Bit and Byte Manipulation
- Shift Operations
- Logical Shifts (SLL, SRL, SLDL, SRDL instructions)
- Arithmetic Shifts (SLA, SRA, SLDA, SRDA instructions)
- Logical Operations
- The AND Operations (N instruction)
- The OR Operations (O instruction)
- The Exclusive OR Operations (X instruction)
- Test Under Mask (TM instruction)
- ICM, STCM, AND CLM Instructions
- Walk Thru Of Machine Instruction Summary Of All Instructions
Macros
- Simple macro
- Symbolic parameters
- System Variable Symbols
- A look at code of IBM supplied macros such as SAVE, RETURN etc.
Reading / Analyzing Existing Program From Maintenance View Point
- Assembler Documentation Hints -- DO'S and DON'TS