Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Assembly language programming for the VAX-11
Pressman M., Mayfield Publishing Co., Mountain View, CA, 1985. Type: Book (9789780874845990)
Date Reviewed: Nov 1 1988
Comparative Review

The ACM curriculum includes the course CS-3, Introduction to Computer Systems, which consists mainly of assembly language topics, including addressing, macros, and subprograms, and some elements of computer architecture, such as fetch-execute. Though higher-level languages have relieved the programmer of much of the housekeeping and drudgery associated with assembly language, a knowledge of assembly language is still necessary for low-level machine control of input/output, better control of machine resources, and an increase in the execution speed of algorithms. Exposure to assembly language increases the student’s awareness of the underlying machine’s architecture. The VAX is a popular complex instruction set computer (CISC) that has a full instruction set and varied operand addressing techniques, which can prepare the student for other CISC architecture machines.

The texts reviewed are intended for students with some background in a higher-level language. The target audience is first-year students or sophomores in a computer science program. The texts are evaluated from the viewpoint of an assembly language course in a four-year college. None of them covers the privileged instructions of the VAX computer system because the authors recognize that a dedicated computer system is needed to exercise these instructions.

Frank

The first four chapters of the text are introductory and do not use the VAX computer system as the teaching vehicle. This introduction includes computer integer arithmetic, word and character data types, and the fetch-execute cycle. At this point the VAX is introduced as the teaching vehicle and its registers and condition codes are discussed. The machine language and corresponding assembly language for a short program are given. The majority of the VAX addressing modes are presented with simple examples. One chapter presents the basic instructions (movement, integer arithmetic, loop, branch, and bit) and assembler directives; another chapter is devoted to subroutines, stacks, procedures, and the VAX conventions for linkage and parameter passing. The last chapter in the core of the text handles linking and loading of separate modules.

The final portion of the book is a set of optional chapters covering a wide range of topics. These include exception and interrupt handling under the VMS operating system, floating-point data and operations, queue instructions, and program sections. Three chapters discuss strings--numerical, character (byte), and bit--and their operations. A treatment of macros and their definition, expansion, and use, and a discussion of conditional assembly are also included here.

This text is intended for a one-semester course in the fundamentals of computer architecture and programming as viewed by the assembly language programmer. The text is divided into three parts. Part 1 (chapters 1–6) is the introductory architecture portion of the text and is not oriented toward the VAX’s architecture. The second part of the text (chapters 7–10) concentrates on the VAX architecture and assembly language. These two portions form the core of a course but do not fill an entire semester’s (or quarter’s) time. The third portion (chapters 11–18) is a collection of chapters specific to the VAX architecture, and individual chapters can be chosen by the instructor to complete the semester’s work.

The author indicates that an important attribute in learning assembly language is perseverance, as many of the topics are nontrivial. This text contains the densest presentation of information of the four reviewed. For example, chapter 7, “VAX Addressing Modes,” covers 13 addressing modes in 41 pages; for each mode, it covers the assembler syntax, results on the machine, and an example or two using that addressing mode. When the student finishes a course with this text, however, he or she will have a deep understanding of the VAX assembler.

A possible deficiency of this text is input/output using the operating system. A set of macros that will handle most student input/output is listed, but the VMS operating system’s Record Management System (RMS) is not covered in the text. Of the four books reviewed, this would be the text to purchase since it covers a great many assembly language concepts and would be a good reference for VAX assembly language once the course is over.

Sowell

This text covers number systems and conversions and integer arithmetic, including shifting and rotating. It discusses branching and looping, operations on characters and bytes, and the use of author-supplied macros for simple input/output. Subroutine calls and the state of the stack for linkage and parameter passing are treated in a chapter. Macros and conditional assembly are handled in a separate chapter after macros have been used for the discussion of input/output.

Recursive programming, floating-point numbers, further addressing modes, decimal representation and operations on decimal numbers, exception handling and interrupts under the VMS operating system, and input/output using the VMS Record Management System fall into the “Advanced Topics” portion of the text.

This text is intended for a one-semester course in computer architecture and VAX assembly language programming. The first part of the text (chapters 1–10) covers sufficient material for the student to become familiar with the common instructions of the VAX architecture. The second part (chapters 11–17) is intended to fill out the semester with chapters chosen by the instructor.

The text of this book does not treat all the nonprivileged instructions. It does have a set of macros for student input/output and a short treatment of the VMS operating system’s RMS as an optional chapter.

This book would be my second choice. While it omits some instructions, it supplies material on operating-system–level input/output. The omitted instructions can be seen in the copy of the VAX-11 programming card on the inside of the front and back covers. Lemone and Kaliski

This text covers number conversions. It treats the basic instructions--e.g., movement, integer arithmetic, comparisons, and branching--without discussing addressing. The next section covers a subset of the addressing portion of the VAX assembler. Subroutines, procedures, and stacks are handled together with linkage and parameter passing. Strings of bits, bytes, and characters and numeric strings are described with their respective operations. Input/output is introduced from the viewpoint of someone using RMS under the VMS operating system. A chapter on advanced and miscellaneous topics covers octawords, floating-point format and instructions, and the case, table, and queue instructions.

This text intersects with the recommendations for several courses, including computer organization and assembly language, introduction to computer systems, and principles of computer organization. The assembly language and architecture covered are for the VAX computer system. This text may suffice for a one-semester course in VAX assembly language. The common instructions and addressing modes are covered early in the text. The students obtain an introduction to the basics of the system with this text. Further depth for any of the topics, additional instructions, or addressing modes would have to be covered by the instructor. A student input/output facility is supplied by macros and further system-level input/output is examined in the text via an RMS introduction.

The attempt to cover so many diverse courses dilutes the treatment of the VAX assembly language so that the text nears marginality for that purpose.

Pressman

This text introduces topics for the VAX assembler but does not cover any in depth or have a wide range. Data conversions for binary, hex, floating-point, and character data are treated. VAX assembly language is introduced via movement, integer arithmetic, and branch instructions. The symbolic debugger is introduced for input/output operations. Addressing is divided into two chapters, simple addressing and register addressing. Other instructions (case and bit) are introduced with some program segments as examples. Subprograms, procedures, and parameter passing have a chapter. The macro capability of the assembler is treated along with conditional assembly. VAX-11 VMS services and RMS are introduced in two chapters. Two chapters deal with character strings and non-integer arithmetic.

This book is intended both as a college text for assembly language and to retrain programmers in newer software. In either case insufficient information is presented. The text does not cover the instruction set or the addressing modes of the VAX computer system in enough detail to expose the student to the full power of the system. As experienced programmer looking for retraining would be disappointed at the low level of presentation. Input/output is barely considered and most results are obtained using the symbolic debugger. An oddity of the book is that most photographs of equipment are of historic pieces rather than VAX system components. The lightweight nature of the material’s presentation does not fulfill the intent of the text.

Reviewer:  Michael A. Baltrush Review #: CR111714
Comparative Review
This review compares the following items:
  • Assembly language programming for the VAX-11:
  • Introduction to VAX-11 architecture and assembly language:
  • Assembly language programming for the VAX-11 (2nd ed.):
  • Programming in assembly language, VAX-11:
  • Bookmark and Share
     
    Vax-11 Assembly Language (D.3.2 ... )
     
     
    Macro And Assembly Languages (D.3.2 ... )
     
     
    Single-Instruction-Stream, Single-Data-Stream Processors (SISD) (C.1.1 ... )
     
     
    Miscellaneous (C.1.m )
     
    Would you recommend this review?
    yes
    no

    E-Mail This Printer-Friendly
    Send Your Comments
    Contact Us
    Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
    Terms of Use
    | Privacy Policy