Hubbry Logo
search button
Sign in
VAX MACRO
VAX MACRO
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
VAX MACRO
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the VAX MACRO Wikipedia article. Here, you can discuss, collect, and organize anything related to VAX MACRO. The purpose of the hub is to connect people, foste...
Add your contribution
VAX MACRO
VAX MACRO
Paradigmsnon-structured, imperative
Familyassembly language
DeveloperDigital Equipment Corporation
First appeared1977; 48 years ago (1977)
Typing disciplineUntyped
ScopeLexical
Implementation languageassembly language
PlatformNative: VAX
With translation: Alpha, Itanium, x86-64
OSVMS
Influenced by
MACRO-11
Influenced
MACRO-64

VAX MACRO is the computer assembly language implementing the VAX instruction set architecture for the OpenVMS operating system, originally released by Digital Equipment Corporation (DEC) in 1977. A significant amount of VMS is written in VAX MACRO.[1]

The syntax, directives, macro language, and lexical substitution operators of VAX MACRO formerly appeared in MACRO-11, the assembler for the PDP-11 series of computers. The MACRO-32 assembler supported the VAX processors developed and manufactured by DEC. It ran under the VMS operating system and produced object files suitable for the VMS linker. The MACRO-32 assembler and linker were bundled with the operating system.

VAX MACRO on other architectures

[edit]

The port of VMS to the DEC Alpha architecture led to the creation of a MACRO-32 compiler, which treated VAX MACRO as an input language and generated optimized Alpha object code. The MACRO-32 compiler was necessary since it was not feasible to rewrite the large quantity of VAX MACRO code present in the VMS operating system, layered products, and third-party software.[1] The MACRO-32 compiler was subsequently ported to Itanium and x86-64 as OpenVMS was ported to those architectures.[2][3]

Due to the difficulty of mapping low-level VAX semantics onto other architectures, most VAX MACRO programs written for the native VAX assembler require modification before they can be compiled with the MACRO-32 compiler. These changes include adding directives to explicitly define certain behaviours of the code, and removing code which relies on non-portable constructs.[1] Furthermore, the MACRO-32 compiler allows direct access to certain Alpha architecture features, including Alpha's 32 registers, 64-bit addressing, and a subset of Alpha instructions. These are mapped onto equivalents on Itanium and x86-64, but are not supported by the original VAX MACRO assembler.[4]

The OpenVMS assembler for Alpha assembly code is named MACRO-64. Despite sharing a similar name and macro syntax, MACRO-64 is otherwise unrelated to MACRO-32.[5]

References

[edit]
  1. ^ a b c Kronenberg, Nancy P.; Benson, Thomas R.; Cardoza, Wayne M.; Jagannathan, Ravindran; Thomas, Benjamin J. III (1992). "Porting OpenVMS from VAX to Alpha AXP" (PDF). Digital Technical Journal. 4 (4). Archived from the original (PDF) on 2017-08-09. Retrieved 2020-08-16.
  2. ^ "OpenVMS Ask the Wizard – Macro32 Assemblers and Compilers? OpenVMS I64?". 2004-09-09. Retrieved 2025-05-20.
  3. ^ "State of the Port to x86" (PDF). VMS Software Inc. March 2016. Archived from the original (PDF) on 2019-10-29.
  4. ^ "VSI MACRO Compiler User's Guide" (PDF). VMS Software. VMS Software, Inc. 2021. Retrieved 2025-05-20.
  5. ^ "VSI OpenVMS Programming Concepts Manual" (PDF). VMS Software Inc. April 2020. Retrieved 2020-10-07.
[edit]