Spim is a self-contained simulator that will run MIPS R2000/R3000 assembly language programs. It reads and immediately executes assembly language code for this processor (it does not execute binary programs). Spim provides a simple debugger and minimal set of operating system services.
Spim implements almost the entire MIPS assembler-extended instruction set for the R2000/R3000. It omits some complex floating point comparisons and rounding modes and details of the memory system page tables. The MIPS architecture has evolved considerably since then (in particular, from 32 to 64 bits), which means that spim will not run programs compiled for recent MIPS or SGI processors. MIPS compilers also generate a number of assembler directives that spim cannot process. These directives can be safely deleted.
Spim implements both a simple, terminal-style interface and a visual windowing interface. On Unix, the spim program provides the terminal interface and the xspim program provides the X window interface. On PCs, PCSpim provides the Windows interface. Macs are not explicitly supported, but the Unix/X window source will compile under Mac OS X.
The following tutorials describe the various versions of SPIM.
- Getting Started with xspim
- Getting Started with PCSpim
- Getting Started with spim
- SPIM Command-Line Options
You can download spim from the SPIM website.