Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
spim(1) 		     General Commands Manual			 spim(1)

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	    -sk-
     data 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.

     -exceptionLoad 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 oc-
	       curs, 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_ioEnable 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  in-
	       struction  after a branch, jump, or call before transferring con-
	       trol.  SPIM's default is to simulate non-delayed  transfers,  un-
	       less 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  sys-
	       tem  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 val-
	       ues

     -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-Madi-
     son.  Current address: James R Larus (larus@microsoft.com),  Microsoft  Re-
     search.

									 spim(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xspim&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help