Further Information

Elsevier (aka Morgan Kaufmann) has generously provided the Spim documentation (Appendix A) from the third edition of Hennessy & Patterson, Computer Organization and Design: The Hardware/Software Interface. This documentation is included with QtSpim. It is more complete and up-to-date than the documentation included in the old Spim distribution. The COD documentation includes:

The documentation included with Spim is also online (http://spimsimulator.svn.sourceforge.net/viewvc/spimsimulator/Documentation/H_P_AppendixA/HP_AppA.pdf?view=log).

The best book I have seen on MIPS programming is: Dominic Sweetman, See MIPS Run, Morgan Kaufmann, San Francisco, CA, 1999, ISBN 1-55860-410-3.

MIPS, Inc. has excellent free documentation on the MIPS32 architecture on their website http://www.mips.com/products/product-materials/processor/mips-architecture/:

An old reference manual for the MIPS architecture (including processors subsequent to the R2000/R3000) is: Gerry Kane and Joe Heinrich, MIPS RISC Architecture, Prentice Hall, Englewood Cliffs, N.J. 07632 ISBN 0-13-1059254.

Another good book for the MIPS R2000 and R3000 is: Erin Farquhar and Philip Bunce, The MIPS Programmer's Handbook, Morgan Kaufmann, San Francisco, CA, 1994, ISBN 1-55860-297-6.

The GNU C compiler can generate code for the MIPS R3000 and can be used as a cross compiler. A retargeted port of gcc is available on the MPS Resource Page. I have not used this compiler.

Downcast Systems offers a very nice text editor for MIPS assembly code called MIPSter. It has syntax highlight, MIPS-specific help, good integration with SPIM, and a number of other features to make it easier to write assembly code. MIPSter is an inexpensive commercial product, and it offers a limited time trial version.

Andrea Grandi ported SPIM to the Nokia 770/800 Internet Tablet, so you never need to be without the ability to run MIPS programs. The port of SPIM is available at: http://www.ptlug.org/wiki/SPIM_N770.