NAME¶
spim - A MIPS32 Simulator
SYNTAX¶
spim [
-asm/-bare -exception/-noexception
-quiet/-noquiet -mapped_io/-nomapped_io
-delayed_branches -delayed_loads
-stext size -sdata size -sstack size -sktext
size -skdata size -ldata size -lstack size
-lkdata size
-file file <args> -execute file <args> ]
DESCRIPTION¶
SPIM S20 is a simulator that runs programs for the MIPS32 RISC computers. SPIM
can read and immediately execute files containing assembly language or MIPS
executable files. SPIM is a self-contained system for running these programs
and contains a debugger and interface to a few operating system services.
SPIM comes in two versions. The plain version is called
spim. It runs on
any type of terminal. It operates like most programs of this type: you type a
line of text, hit the
return key, and
spim executes your
command. The fancier version of SPIM is called
xspim. It uses the
X-window system, so you must have a bit-mapped display to run it.
xspim, however, is a much easier program to learn and use because its
commands are always visible on the screen and because it continually displays
the machine's registers.
OPTIONS¶
spim has many options:
- -asm
- Simulate the virtual MIPS machine provided by the
assembler. This is the default.
- -bare
- Simulate a bare MIPS machine without pseudo-instructions or
the additional addressing modes provided by the assembler. Implies
-quiet.
- -exception
- Load the standard exception handler and startup code. This
is the default.
- -noexception
- Do not load the standard exception handler and startup
code. This exception handler handles exceptions. When an exception occurs,
SPIM jumps to location 0x80000080, which must contain code to service the
exception. In addition, this file contains startup code that invokes the
routine main. Without the startup routine, SPIM begins execution at
the instruction labeled __start.
- -quiet
- Print a message when an exception occurs. This is the
default.
- -noquiet
- Do not print a message at exceptions.
- -mapped_io
- Enable the memory-mapped IO facility. Programs that use
SPIM syscalls to read from the terminal cannot also use
memory-mapped IO.
- -nomapped_io
- Disable the memory-mapped IO facility.
- -delayed_branches
- Simulate MIPS's delayed control transfers by executing the
instruction after a branch, jump, or call before transferring control.
SPIM's default is to simulate non-delayed transfers, unless the -bare flag
is set.
- -delayed_loads
- Simulate MIPS's original, non-interlocked load
instructions. SPIM's default is to simulate non-delayed loads, unless the
-bare flag is set.
- -stext size -sdata size -sstack size
-sktext size -skdata size
- Sets the initial size of memory segment seg to be
size bytes. The memory segments are named: text,
data, stack, ktext, and kdata. The text
segment contains instructions from a program. The data segment
holds the program's data. The stack segment holds its runtime
stack. In addition to running a program, SPIM also executes system code
that handles interrupts and exceptions. This code resides in a separate
part of the address space called the kernel. The ktext
segment holds this code's instructions and kdata holds its data.
There is no kstack segment since the system code uses the same
stack as the program. For example, the pair of arguments -sdata
2000000 starts the user data segment at 2,000,000 bytes.
- -ldata size -lstack size -lkdata
size
- Sets the limit on how large memory segment seg can
grow to be size bytes. The memory segments that can grow are
data, stack, and kdata.
- -file file <args>
- Load and execute the assembly code in the file with
arguments <args>.
- -execute file <args>
- Load and execute the MIPS executable (a.out) file
with arguments <args>. Only works on systems using a MIPS
processors.
BUGS¶
Instruction opcodes cannot be used as labels.
SEE ALSO¶
xspim(1)
James R. Larus, ``SPIM S20: A MIPS R2000 Simulator,'' included with SPIM
distribution.
AUTHOR¶
James R. Larus, Computer Sciences Department, University of Wisconsin-Madison.
Current address: James R Larus (larus@microsoft.com), Microsoft Research.