The MIPS Programmer's Handbook
- 1st Edition - February 1, 1994
- Authors: Erin Farquhar, Philip J. Bunce
- Language: English
- Paperback ISBN:9 7 8 - 1 - 5 5 8 6 0 - 2 9 7 - 7
- eBook ISBN:9 7 8 - 0 - 0 8 - 0 5 1 1 7 3 - 3
A hands-on view of the highly successful MIPS family of microprocessors, written for programmers developing systems applications for the MIPS platform. The MIPS Programmer's… Read more

Purchase options
Institutional subscription on ScienceDirect
Request a sales quoteA hands-on view of the highly successful MIPS family of microprocessors, written for programmers developing systems applications for the MIPS platform.
The MIPS Programmer's Handbook describes the MIPS architecture from the perspective of assembly- and C-language programmers, with special emphasis on issues related to embedded applications. Engineers writing system-level programs for MIPS-based embedded systems will find the topic selection especially useful including the sections on software conventions, initializing the processor in a bare machine environment, and writing exception handlers.
For convenient use, the instruction set reference is presented with only one page per instruction. The authors focus on the instructions available to assembly-language programmers, rather than on the hardware-level instruction set documented in data books released by vendors of the MIPS processor. Provides enough detail for anyone doing serious system-level programming. Also included are ten complete program examples, with line-by-line explanations.
- Preface1 Introduction2 Software Conventions
- 2.1 Introduction2.2 Register-Usage Conventions2.3 Stack Usage Conventions2.4 Procedure Format2.5 Program Listings
- 2.5.1 Example 1: A Simple Leaf Function2.5.2 Example 2: Leaf Function with Local Array2.5.3 Example 3: Simple Nonleaf Function2.5.4 Example 4: Nonleaf Function That Saves Three Registers2.5.5 Example 5: Nonleaf Function That uses Four Save Registers2.5.6 Example 6: Simple Floating-Point Leaf Function
- 3.1 Introduction3.2 Example Programs
- 3.2.1 Example 1: A Simple Initialization3.2.2 Example 2: Initialization That Flushes the Caches
- 3.3.1 Flushing the R3000 Cache 263.3.2 Flushing the LR33000 Cache
- 3.4.1 Example 1: A Simple Initialization3.4.2 Example 2: Initialization That Flushes the Cache3.4.3 Example 3: R3000 Cache Flush3.4.4 Example 4: R33000 Cache Flush
- 4.1 Introduction4.2 External Interrupts
- 4.2.1 Hardware Interrupt Examples
- 4.2.1.1 Example 1: A Single Interrupt Source4.2.1.2 Example 2: Two Interrupt Sources4.2.1.3 Example 3: Nested Interrupts4.2.1.4 Example 4: Interrupt Handler in C4.2.1.5 Example 5: UNIX Time Function Support4.2.1.6 Example 6: Prioritizing Interrupts
- 4.5.1 Example 1: A Single Interrupt Source4.5.2 Example 2: Two Interrupt Sources4.5.3 Example 3: Nested Interrupts4.5.4 Example 4: Interrupt Handler in C4.5.5 Example 5: UNIX Time Function Support4.5.6 Example 6: Prioritizing Interrupts4.5.7 Example 7: Software Interrupts4.5.8 Example 8: Exceptions in a Branch Delay Slot
- 5.1 Introduction5.2 Syntax Descriptions5.3 Instruction Descriptions
- A.1 AddressingA.2 Modes of OperationA.3 Coprocessor UnitsA.4 RegistersA.5 Data TypesA.6 Instructions
- A.6.1 Delay InstructionsA.6.2 Computational InstructionsA.6.3 Branches and JumpsA.6.4 Loads and Stores
- A.6.4.1 Big and Little Endian Byte Orderings
- C.1 Program Listings
- D.1 machine.hD.2 mips.hD.3 lr33000.h
- E.1 stdio.cE.2 put 2681E.3 r3kcflu.sE.4 r33kcflu.soE.5 putsable.c
- No. of pages: 416
- Language: English
- Edition: 1
- Published: February 1, 1994
- Imprint: Morgan Kaufmann
- Paperback ISBN: 9781558602977
- eBook ISBN: 9780080511733