See MIPS Run

This is intended as a pretty comprehensive guide to programming MIPS, wherever it's different from programming any other 32-bit CPU. It's the first time anyone has tried to write a readable, and comprehensive, explanation and account of the wide range of MIPS CPUs available. It should be very helpful for anyone programming MIPS who isn't insulated by someone else's operating system. Also, the author is a free-unix enthusiast who subscribes to the Linux/MIPS mailing list!

John Hennessey, father of the MIPS architecture, was kind enough to write in the foreword: "... this book is the best combination of completeness and readability of any book on the MIPS architecture ...";

It includes some context about RISC CPUs, a description of the architecture and instruction set, including the "co-processor 0" instructions used for CPU control; sections on caches, exceptions, memory management, and floating point. There's a detailed assembly language guide, some stuff about porting, and some fairly heavy-duty software examples.

It's 512 pages and costs around $50 in the US, 34Â£ in the UK.

The MIPS Programmer's Handbook

A readable introduction to the practice of programming MIPS at the low level, by the author of PMON. Strengths: lots of examples; weakness: leaves out some big pieces of the architecture (such as memory management, floating point and advanced caches) because they didn't feature in the LSI embedded products this book was meant to partner.

Introduction to RISC Assembly Language Programming

This book is based on a one semester introductory computer architecture course for first year computing students in the School of Computer Applications, Dublin City University using SPIM, a virtual machine that runs programs for the MIPS R2000/R3000 computers.

Books on Embedded Linux

Embedded Linux System Design and Development

Embedded Linux System Design and Development explains an entire development roadmap for embedded Linux systems. This book facilitates movement to embedded Linux from a traditional RTOS and explains the system design model with embedded Linux that involve the BSP, embedded storage, real-time programming and graphics. It also explains the design and concepts behind embedded Linux variants such as RTAI and ucLinux. It offers solutions to typical problems faced by embedded Linux developers including power management, system boot up time, memory leaks, debugging and profiling. Illustrated with examples for both 2.6 and 2.4 kernels, this book is ideal for systems architects, programmers and managers