CDN$ 85.60
Only 3 left in stock (more on the way).
Ships from and sold by Gift-wrap available.
MIPS Assembly Language Pr... has been added to your Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

MIPS Assembly Language Programming Paperback – May 28 2003

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
"Please retry"
CDN$ 85.60
CDN$ 85.60 CDN$ 131.30

Save an Additional 10% on Textbooks When you Join Amazon Student

Special Offers and Product Promotions

  • Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your e-mail address or mobile phone number.

Product Details

  • Paperback: 168 pages
  • Publisher: Pearson; 1 edition (May 28 2003)
  • Language: English
  • ISBN-10: 0131420445
  • ISBN-13: 978-0131420441
  • Product Dimensions: 17.5 x 1.3 x 23.1 cm
  • Shipping Weight: 281 g
  • Average Customer Review: Be the first to review this item
  • Amazon Bestsellers Rank: #592,917 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

  • See Complete Table of Contents

Product Description

From the Inside Flap

This text is targeted for use in an introductory lower-division assembly language programming or computer organization course. After students are introduced to the MIPS architecture using this textbook, they will be well prepared to go on to more advanced courses in computer organization where any modern reduced instruction set computer (RISC) is analyzed. This text provides a technique that will make MIPS assembly language programming a relatively easy task as compared to writing complex Intel™ x86 assembly language code. The skills learned, as a MIPS assembly language programmer, will facilitate learning other more complex assembly languages if the need ever arises. Students using this text will acquire an understanding of how the functional components of modern computers are put together, and how a computer works at the machine language level. It is assumed that students using this text already have some experience in developing algorithms, and running programs in a high-level language.

Chapter 1 provides an introduction to the basic MIPS architecture, which is a modern RISC. Chapter 2 shows how to develop code targeted to run on a MIPS processor using an intermediate pseudocode notation similar to the high-level language C. Once an algorithm is specified in this pseudocode notation it is a relatively simple task to translate it to MIPS assembly language. Chapter 3 is an introduction to the binary number system. This chapter provides simple procedures for converting values from one number system to another. The rules for performing binary arithmetic are explained. Students will learn how to detect when overflow occurs. Chapter 4 explains the features of the PCSpim simulator for the MIPS architecture, which is available for free.

Within the remaining chapters, a wealth of programming exercises are provided that every student needs to become an accomplished assembly language programmer. Instructors are provided with a set of PowerPoint slides. After students have had an opportunity to develop their pseudocode and the corresponding MIPS assembly language code, they can be shown example solutions to each of the exercises via the PowerPoint slides. In Chapter 5, students are presented with the classical input/output (I/O) algorithms that involve converting numbers between their integer binary representation and their ASCII decimal and hexadecimal representation. The utility of logical operators and shift operators are stressed.

In Chapter 6, a specific argument-passing protocol is defined. Most significant programming projects are a teamwork effort. Emphasis is placed on the important fact that everyone involved in a teamwork project must adopt the same convention for parameter passing when calling functions. In the case of nested function calls, a specific convention is defined for saving and restoring values in the temporary registers.

In Chapter 7, the necessity for reentrant code is explained, as well as the rules one must follow to write such functions. In Chapter 8, students are introduced to memory-mapped I/O. The MIPS simulator provides a memory-mapped I/O feature so that students can gain experience in writing drivers that interface with physical devices. With this PCSpim feature, students can gain experience in writing code to communicate character by character with physical I/O devices. The code that communicates with a physical device at this level is often referred to as a driver. This is a significant advantage of using a simulator to learn assembly language programming. Students learning to write native assembly language typically never have an opportunity to write code that interfaces directly with the I/O devices. These students have to be satisfied with making calls to Basic Input Output System (BIOS) procedures that handle the details of communicating with the I/O devices. Typically these students never experience the real-world challenges that arise as a result of the communication and device time delays.

Chapter 9 introduces exceptions and exception processing. PCSpim responds to interrupts generated by the memorymapped keyboard and display terminal. Given this feature, students have an opportunity to experience writing code to respond to interrupts. Once again this points out the advantage of using a simulator when learning to write assembly language code. Students learning to write assembly language code for their desktop computer typically never have an opportunity to write and run interrupt handlers that enable and disable the interrupt system. Typically these students never experience the real-world challenges that arise in writing the code that resides at the very heart of the operating system.

In Chapter 10 a pipelined implementation of the MIPS architecture is presented, and the special programming considerations dealing with delayed loads and delayed branches are discussed. PCSpim provides an option to run the simulator as if the code were executing on a pipelined implementation of the MIPS architecture. Using this option, students gain experience in writing assembly language code that will run on a pipelined implementation. Chapter 11 provides a description of the floating-point features of the MIPS architecture, as well an introduction to the IEEE 754 floating-point standard.

I would like to acknowledge Bary Pollack, James Gips, Doug Milhous, and Dwite Brown who adopted the earlier draft versions of this textbook. I wish to express my special appreciation to Bary Pollack and Tom Fountain for their thorough review of my initial submission to Prentice Hall, and their many constructive recommendations for improvements. The feedback from Seyed H. Hosseini, and Wagdy H. Mahmoud was also quite helpful. I also wish to thank Petra Recter, senior computer science editor, and John Keegan, production editor, both at Prentice Hall, who so effectively managed this project. I am especially grateful to my wife, Jan, for her support and encouragement. She is my true helpmate and soul mate.

Robert Britton
April 2003

From the Back Cover

First impressions are important.

To introduce your Assembly Language programming students to the fundamental concepts of contemporary computer architecture, start with a Reduced Instruction Set Computer (RISC).

When students first encounter computer architecture, they need to begin with the basics of modern computer organization. The MIPS architecture embodies the fundamental design principles of all contemporary RISC architectures:

  • All instructions are directly executed in hardware
  • The rate at which instructions are issued is maximized
  • Instructions are easy to decode
  • Only load and store instructions reference memory
  • Plenty of general purpose registers are provided (32 for MIPS)

MIPS Assembly Language Programming offers students an understanding of how the functional components of modern computers are put together and how a computer works at the machine-language level. The book begins with a datapath diagram that shows a simple implementation of the MIPS architecture, consisting of a register file, an ALU, a memory. a program counter, and an instruction register. As students progress through the text, they will elaborate on this established datapath diagram model, allowing them to visualize how the instructions are fetched and executed as they write their programs.

The Spim simulator for the MIPS architecture runs on PC's and Unix® systems. All the programming exercises are done using this simulator, which can be downloaded for free from the Internet. Using the MIPS simulator allows students to observe the contents of the registers and memory change as their programs execute. The students are not isolated by a particular operating system from experiencing and writing code dealing with:

  • Memory-mapped I/0
  • Interrupts and exception processing
  • Delayed loads and delayed branches for a pipelined implementation

It is assumed that students using this text already have some experience in developing algorithms, and running programs in a high-level language. The skills they will learn with MIPS Assembly Language Programming offer a sound basis for advanced work in computer architectures and complex assembly languages.

See all Product Description

Customer Reviews

There are no customer reviews yet on
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on (beta) HASH(0xa77b9864) out of 5 stars 14 reviews
7 of 9 people found the following review helpful
HASH(0xa7be93b4) out of 5 stars Extremely useful reference Feb. 22 2006
By K. Chui - Published on
Format: Paperback
It has a lot of examples and lists of commands. You can learn MIPS straight out from this single book. No need to look elsewhere, this is the only book you'll ever need.
8 of 11 people found the following review helpful
HASH(0xa7be9408) out of 5 stars Excellent for Assembly Language beginners Feb. 25 2005
By Joselito Surdilla - Published on
Format: Paperback
This book in an excellent introduction to Assembly language. What I thought to be very difficult programming language isn't actually such a monster after all.

Just a "warning," the assembly language instruction set here is smaller and the processor architecture is less complex than, say, an Intel x86 processor. However, if you want to get a feel of how Assembly language is, this is definitely a good book.

The book isn't monstrous in pages so that's a plus. What I like about this fact is, I can actually reread the chapter if I don't think I understood it enough.

I gave it 5 stars because although it is not perfect, it suits my needs for information beyond enough.
HASH(0xa7be9840) out of 5 stars Great for teaching the basic but overall i found it ... Sept. 5 2014
By Michael J. Schuett - Published on
Format: Paperback
Great for teaching the basic but overall i found it to be a little shallow. The examples when you get farther seem to be more and more lacking and you end up feeling like you are just reading code off github which i can do for free.
0 of 1 people found the following review helpful
HASH(0xa7be9c0c) out of 5 stars Exactly what I was looking for July 14 2011
By J. Matters - Published on
Format: Paperback Verified Purchase
If you have a little experience with any flavor of assembly, this book will have you up and running with MIPS32 in no time. It's exactly the sort of book that you need if you already know how assembly works and want to learn the MIPS language. It seems a little short, but it covers things quite well and directly.

Topics are addressed in a logical manner, and each topic starts off with basics and moves on to more in-depth issues. Also, the chapters have thought-provoking exercises that really help if you're willing to work them out.

Good discussion on programming style and de facto standards for function calls, returns, and special purpose registers. In addition, the book has great appendices, including a complete description of the entire instruction set, ascii chart, and a list of pseudo-ops with their asm translations.

The book emphasizes the SPIM environment, but I use MARS and have had no problems thus far.
HASH(0xa7be9bb8) out of 5 stars Five Stars March 2 2015
By Carlos G. - Published on
Format: Paperback Verified Purchase
Book did the trick!