OpenVMS Academy Macro-32
Course Code: VM320
Length: 5 days
Schedule and Registration
This course is not currently scheduled.
Course Description
This course explains the Macro-32 programming language and the VAX Macro Instruction set.
Who Should Attend
OpenVMS Application and System Programmers
Prerequisites
Before taking this course, students should:
- Have a fundamental understanding of OpenVMS
- Be able to issue DCL commands
- Be able to create and edit text files
Benefits of Attending this Class
Upon completion of this course, students will be able to understand and develop applications and routines in the Macro-32 language.
Course Contents
OpenVMS Process and Concepts
- Pictorial Representation of a Process
- Hardware Process Context
- Virtual Address Space
- Software Context
- Data Types
- Instruction Format
VAX-11 Macro
- Format of a Macro Source File
- Symbols
- Defining Labels
- Defining Terms and Creating Expressions
- Defining and Using Macros
Symbolic Debugger
- Three Types of Debuggers
- Using the Debugger
- Debugger Initialization File
- Debugger Commands
- Getting Help in the Debugger
Addressing Modes
- Register Mode
- Register Deferred Mode
- Autoincrement Mode
- Autodecrement Mode
- Autoincrement Deferred Mode
- Displacement Mode
- Displacement Deferred Mode
- Immediate Mode
- Absolute Mode
- Relative Mode
- Relative Deferred Mode
- Short Literal Mode
- Register Deferred Indexed Mode
- Autoincrement Indexed Mode
- Autodecrement Indexed Mode
- Displacement Indexed Mode
- Displacement Deferred Indexed Mode
- Autoincrement Deferred Indexed Mode
- Absolute Indexed Mode
- Relative Indexed Mode
- Relative Deferred Indexed Mode
Integer, Logical and Branch
- Move Instructions
- Convert Instructions
- Move Complemented Instructions
- Move Negated Instructions
- Move Zero Extended Instructions
- Two Operand Integer Arithmetic Instructions
- Three Operand Integer Arithmetic Instructions
- Increment and Decrement Instructions
- Add with Carry Instruction
- Clear Instructions
- Compare Instructions
- Test Instructions
- Rotate Long Instruction
- Arithmetic Shift Instructions
- Bit Set Instructions
- Bit Clear Instructions
- Exclusive OR Instructions
- Bit Test Instructions
- Unconditional Branch Instructions
- Unconditional Jump Instructions
- Conditional Branch Instructions
- Bit-Oriented Instructions
- Loop Control Instructions
- Add, Compare and Branch Instructions
Variable Bit Field Instructions
- Extract Bit Field Instructions
- Insert Bit Field Instructions
- Compare Bit Field Instructions
- Find First Bit Instructions
Floating Point Instructions
- Floating Point Exceptions
- Move Floating Instructions
- Convert Floating Point Instructions
- Move Negated Floating Point Instructions
- Two Operand Floating Point Arithmetic Instructions
- Three Operand Integer Arithmetic Instructions
- Clear Floating Instructions
- Compare Floating Instructions
- Test Floating Instructions
- Extended Multiply and Integerize Instructions
- Add Compare and Branch Instructions
Character String Instructions
- Move Character Instructions
- Move Translated Character Instructions
- Move Translated Until Character Instructions
- Compare Character Instructions
- Match Character Instruction
- Locate Character Instruction
- Skip Character Instruction
Decimal String Instructions
- Decimal String Exceptions
- Move Packed Instructions
- Four Operand Add Packed Arithmetic Instructions
- Four Operand Subtract Packed Arighmetic Instructions
- Six Operand Add Packed Arithmetic Instructions
- Six Operand Subtract Packed Arighmetic Instructions
- Multiply Packed Arithmetic Instructions
- Divide Packed Arithmetic Instructions
- Compare Packed Instructions
- Arithmetic Shift and Round Packed Instructions
- Decimal String Convert Instructions
Stack and Address Instructions
- Register Save Masks
- Push and Pop Register Instructions
- Push Long Instruction and the Pop Long Macro
- Push Address Instructions
- Move Address Instructions
Subprocedure and Subroutine Instructions
- Arguments and Argument Lists
- Subroutine Instructions
- Branch Subroutine Instructions
- Jump Subroutine Instructions
- Return from Subroutine Instructions
- Subprocedure Instructions
- CALLS to Subprocedure Instruction
- CALLG to Subprocedure Instruction
- Return from Subprocedure Instruction
Special Instructions
- Move PSL Instruction
- Bit Set PSW Instruction
- Bit Clear PSW Instruction
- Case Instruction
- NOP Instruction
- Insert Queue Instruction
- Remove Queue Instruction
- Extended Function Call Instruction
- Break Point Trap Instruction
- Probe Instruction
- Change Mode Instruction
- Return From Exception or Interrupt Instruction
- Halt Instruction
- Load and Save Process Context Instructions
- Interlocked Instructions