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:
Appendix A: Assemblers, Linkers, and the SPIM Simulator (PDF). An overview and reference manual for Spim and the MIPS32 instruction set.
Getting Started with spim (PDF). Overview of the console version of Spim (both Unix and Windows).
Getting Started with xspim (PDF). Overview of the X-windows version of Spim .
Getting Starting with PCSpim (PDF). Overview of the Microsoft Windows version of Spim .
SPIM Command-Line Options (PDF). Overview of the command line options of Spim (all versions).
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.