NAME
xspim - A MIPS32 Simulator
SYNTAX
xspim [-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
-hexgpr/-nohexgpr -hexfpr/-nohexfpr]
-file file -execute file
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
xspim 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.
-hexgpr Disply the general purpose registers (GPRs) in hexadecimal.
-nohexgpr Disply the general purpose registers (GPRs) in decimal.
-hexfpr Disply the floating-point registers (FPRs) in hexadecimal.
-nohexfpr Disply the floating-point registers (FPRs) as floating-point
values
-file file 10
Load and execute the assembly code in the file.
-execute file 10
Load and execute the MIPS executable (a.out) file. Only
works on systems using a MIPS processors.
BUGS
Instruction opcodes cannot be used as labels.
SEE ALSO
spim(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.
spim(1)