Jump to content

VAX MACRO

From Alfawiki
Digital Equipment Corporation
IndustryComputer hardware and software
FoundedNovember 8, 1957; 69 years ago (1957-11-08)
FateAcquired by Compaq (1998)
Headquarters
Maynard, Massachusetts
,
United States
ProductsVAX MACRO, OpenVMS, PDP-11, VAX computers

VAX MACRO refers to the assembly language designed for the VAX instruction set architecture utilized by the OpenVMS operating system, introduced by Digital Equipment Corporation (DEC) in 1977. A large portion of the VMS system was written using VAX MACRO.

The language’s syntax, directives, macro capabilities, and lexical substitution features are derived from MACRO-11, the assembler originally created for the PDP-11 family. The MACRO-32 assembler catered to DEC’s VAX processors, operating within VMS and generating object files compatible with the VMS linker. Both the assembler and linker were distributed as part of the operating system package.

VAX MACRO adaptation on alternative platforms

When VMS was ported to the DEC Alpha platform, a MACRO-32 compiler was developed that accepted source code written in VAX MACRO and produced optimized object code for Alpha processors. This strategy prevented the need to rewrite extensive existing VAX MACRO code found in the OS, layered software products, and third-party applications. Subsequently, this compiler was extended to support Itanium and x86-64 architectures as OpenVMS broadened its hardware compatibility.

Because translating low-level VAX semantics directly onto other processor architectures presents difficulties, most native VAX MACRO programs must be revised before being compiled with the MACRO-32 compiler. Such revisions often involve inserting directives to explicitly specify desired behaviors and eliminating code that lacks portability. Additionally, the compiler provides access to Alpha-specific features—such as 32 general-purpose registers, 64-bit addressing modes, and certain instructions—that are mapped onto equivalent capabilities on Itanium and x86-64 platforms but are not supported by the original assembler.

The OpenVMS assembler designed for Alpha assembly language is known as MACRO-64. Although it shares similar naming conventions and macro syntax with MACRO-32, MACRO-64 is a distinct and unrelated tool.

External links