This document is the "Tru64 UNIX Assembly Language Programmer's Guide", published in August 2000 for Tru64 UNIX Version 5.1 or higher. It serves as a comprehensive manual for experienced assembly language programmers.
Purpose:
The guide describes the assembly language supported by the HP Tru64 UNIX compiler system, its syntax rules, and how to write assembly programs. It notes that the assembler often processes compiler-generated assembly and that some assembly instructions are "macro instructions" that translate into multiple machine code instructions.
Target Audience & Use Cases:
Intended for experienced assembly language programmers, the manual is useful for tasks such as:
- Maximizing the efficiency of routines (e.g., low-level I/O drivers).
- Accessing machine functions unavailable from high-level languages.
- Satisfying special constraints like restricted register usage.
- Modifying the operating system or compiler system.
Key Content Areas:
The manual is organized into chapters and appendices covering:
- Architecture-Based Considerations: Details general and floating-point registers, Alpha system's little-endian bit and byte ordering, addressing schemes, and common exceptions.
- Lexical Conventions: Explains the syntax rules for identifiers, constants (scalar, floating-point, string), comments, statements, expressions, and address formats.
- Instruction Sets: Provides extensive descriptions of both the main processor's instruction set (including load/store, arithmetic, logical, relational, move, control, byte-manipulation, and special-purpose instructions) and the floating-point instruction set (covering data types, control registers, exceptions, rounding modes, and instruction qualifiers).
- Assembler Directives: Lists and explains various directives used for bookkeeping, storage reservation, and other control functions.
- Programming Considerations: Offers guidance on calling conventions (consistent with the C compiler), program models, register use, stack frame organization, and memory allocation, including examples for interfacing with high-level language procedures.
- Instruction Summaries & Special Topics: Appendices summarize all instructions, address 32-bit data considerations, detail instructions that generate multiple machine instructions, and provide an overview of PALcode (Privileged Architecture Library) instructions.