ISBN: 9780195131093

Published:

Availability: Contact Customer Service

Hardback

AU$143.95

NZ$194.99

Request an Inspection copy

A Programmer's View of Computer Architecture

With Assembly Language Examples from the MIPS RISC Architecture

James Goodman, Karen Miller


This introductory text offers a contemporary treatment of computer architecture using assembly and machine language with a focus on software. Students learn how computers work through a clear, generic presentation of a computer architecture, a departure from the traditional focus on a specific architecture. A computer's capabilities are introduced within the context of software, reinforcing the software focus of the text. Designed for computer science majors in an assembly language course, this text uses a top-down approach to the material that enables students to begin programming immediately and to understand the assembly language, the interface between hardware and software. The text includes examples from the MIPS RISC (reduced instruction set computer) architecture, and an accompanying software simulator package simulates a MIPS RISC processor (the software does not require a MIPS processor to run).
1. Abstractions and Computers 1.1. Levels of Abstraction 1.2. The Tower of Computer Abstractions 1.3. A Programming Language as an Abstraction 1.4. Computer Architecture 1.5. Computer Execution Basics 2. SAL: A Simple Abstract Language 2.1. On Assembly and Compilation 2.2. Variable Declaration 2.3. Arithmetic Operations 2.4. Control Structures 2.5. Communication with the User 2.6. A SAL Program 2.7. Procedures 2.8. A Modular SAL Program 3. Number Systems 3.1. Numbers and Their Representation 3.2. Weighted Positional Notation 3.3. Transformations Between Radices 3.4. Representation of Non-Integer Numbers 3.5. Precision and Accuracy 4. Data Representation 4.1. Numbers versus Their Representation 4.2. Representation of Integers 4.3. Characters 4.4. Floating Point Representation 5. Arithmetic and Logical Operations 5.1. Boolean Operations 5.2. Shift Operations 5.3. Addition and Subtraction 5.4. Multiplication 5.5. Division 6. Floating Point Arithmetic 6.1. Hardware versus Software Calculations 6.2. Addition and Subtraction 6.3. Multiplication 6.4. Division 6.5. Advanced Topics 6.6. SAL Instructions 7. Data Structures 7.l. Memory as an Array 7.2. Arrays 7.3. Stacks 7.4. Queues 8. Registers and MAL 8.1. Instructions as a Data Type 8.2. Specifying Addresses in Instructions 8.3. The MAL Architecture 8.4. Example MAL Code 9. Procedures 9.1. MAL Procedure Call and Return Mechanisms 9.2. Dynamic Storage Allocation 9.3. Activation Records 9.4. Parameter Passing 9.5. Saving Registers 9.6. MIPS RISC Register Usage 9.7. A MAL Program that Uses Procedures 10. The Assembly Process 10.1. What Assemblers Do 10.2. True Assembly Language (TAL) 10.3. Machine Code Format and Generation 10.4. Program Relocation 11. Input and Output 11.1. Typical I/O Devices 11.2. The Processor-I/O Interface 12. Interrupts and Exception Handling 12.1. The Exception Mechanism 12.2. The Role of the Operating System 12.3. The MIPS RISC Exception Mechanism 12.4. A Sample Exception Handler 12.5. Operating System Issues 13. Architectural Performance 13.1. On Minimal Instruction Sets and Choices 13.2. Pipelining 13.3. Branching Techniques 13.4. Memory Hierarchies 14. Alternative Architectures 14.1. What's All This About RISC? 14.2. The Single-Chip Constraint 14.3. The Motorola 68000 Family 14.4. The Intel iAPS 86 Architecture 14.5. The Cray-1 14.6. SPARC Appendix A. SAL Appendix B. MAL Appendix C. TAL
James Goodman, Karen MillerSenior Lecturer, both at the University of Wisconsin, Madison