This book is a comprehensive guide to machine and assembly language programming for the Digital Equipment Corporation's PDP-11 family of minicomputers. It is intended for students who have prior experience with high-level language programming and who are ready to learn how a computer actually functions at the machine level.
Key topics covered include:
- Number Systems: Conversions between decimal, binary, and octal systems.
- PDP-11 Organization: An overview of central memory, the central processor, and peripheral devices like the teletype and line clock.
- Representation: How integers (2's-complement), floating-point numbers, and characters (ASCII) are stored in memory.
- Instruction Sets: Detailed descriptions of machine and assembly language instruction formats, addressing modes (immediate, absolute, relative, etc.), and the execution cycle.
- Programming Techniques: Assembly language programming directives, the use of stacks and subroutines (including nested and recursive subroutines), and coroutines.
- Arithmetic Operations: Carry and overflow condition codes in addition, subtraction, and double-precision arithmetic.
- Traps and Interrupts: Mechanisms for handling errors and peripheral device events through traps and interrupts.
- Assembler and Linkage Editor: The two-pass assembly process, how global symbols work, and how the linkage editor constructs load modules.
- Advanced Techniques: The use of macros, repeat directives, and conditional assembly to improve code readability and efficiency.
The text emphasizes "hands-on" experience with a stand-alone computer to demystify computer operations and concludes with appendixes summarizing PDP-11 organization, ASCII codes, addressing modes, and programming style.