Facta Univ. Ser.: Elec. Energ., vol. 17, no. 1, April 2004, pp. 136-137

Robert L. Britton
MIPS ASSEMBLY LANGUAGE PROGRAMMING
Softcover, pp. 143, plus Xv $ 38,99
Prentice Hall, Pearson Education, Inc.
Upper Saddle River, NJ 07458, 2004
ISBN 0-13-142044-5
http://www.pearsoneduc.com

In general about the book

Microprocessor performance has been doubling every eighteen months for the past thirty years, in part due to semiconductor technology scaling, and in part due to innovations in computer architecture and accompanying software. A great number of architectural ideas have been proposed for new microprocessors during the last three decades time period: RISC, superscalar, superpipelining, VLIW, multithreading, reconfigurable computing, multiprocessors on single chip, etc. However, these new ideas in architecture can't go far without usable software.

In general, assembly language unlocks the secrets of your computer's hardware and software. It instructs you, more closely, about the way the computer's hardware and operating system work together, and how application programs communicate with the operating system. In addition it is standardly used for direct access to computer hardware, and optimization certain critical parts of application programs in order to speed-up their execution. Assembly language is a machine-specific low-level programming language with one-to-one correspondence between its statements and the computer's native machine language.

There are many different types of assembly languages, each specific to a processor or processor family. This book is designed to introduce students to assembly language of MIPS architecture. It is divided into eleven chapters, six appendices, and an Index. The details of each chapter are as follows:

Chapter content

Chapter 1, pp. 1-10, introduces readers to the basic of MIPS architectu as a typical representative of contemporary RISC design. an intermediate pseudocode notation similar to the high-level language C. Chapter 3, pp. 24-34, covers some details concerning notation, conversi and manipulation with binary number systems. Chapter 4, pp. 35-43, briefly explains the features of the PCSpim simulator for the MIPS architecture. Chapter 5, pp. 44-56, deals with efficient algorithm development, espec with algorithms that involve converting number systems between their integer binary representation and their ASCII decimal and hexadecimal representation. Chapter 6, pp. 57-66, discusses the convention related to how everyone in the programming team to use the same argument-passing protocol. Chapter 7, pp. 67-72, explains, in brief, the necessity of involving reentrant code, as well as the rules one must follow to write such functions. Chapter 8, pp. 73-78, concentrates on input-output organization of MIPS processor. The possibilities of the MIPS simulator that provides memory-mapped input-output features are presented. Chapters 9, pp. 79-88, discusses exception and interrupt capabilities of MIPS architecture, and with writing efficient resident code that resides at the kernel of the operating system. Chapter 10, pp. 89-97, focuses on the concept of pipelining implemented into the MIPS architecture, and explains the special programming considerations dealing with delayed loads and delayed branches. Chapter 11, pp. 98- 109, provides an introduction to floating-point fea of the MIPS architectures. In a classroom or laboratory setting it is essential that students be provided with adequate reference information on the assembler, the instruction set, etc.

In this book the following reference information can be found: Appendix A contains lists of integer instruction set, macro-instructions, system input/output services, and assembler directives; Appendix B presents table of ASCII codes; Appendix C contains list of integer instruction set with detailed explanation of each instruction; Appendix D lists macro-instructions; Appendix E presents the code of a modified trap han and Appendix F lists floating-point instruction set.

Useful for junior-level students

MIPS Assembly Language Programming is a slim and effective book designed with aim to broaden student's interest and knowledge in assembly language of a modern processor MIPS of RISC type. It introduces the reader with numerous aspects of assembly language, instruction set, assembly language directives, macroinstructions, program structure, and programming methodology.

The book is intentionally written in a way that would be accessible to undergraduate students in computer science. It is easy to read and the explanations are clear and well written.

In conclusion, this book is useful for junior level students, and beginner-engineers interested in the field of creating efficient programs in assembly language for the microprocessor MIPS. I encourage everyone who uses or teach assembly programming to get a copy of the book.

Prof. Goran Djordjvic
Faculty of Electronic Engineering Nis
Beogradska 14, PO BOX 73
18000 Nis, Serbia and Montenegro