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

FreeBSD Manual Pages


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

       xspim - A MIPS32	Simulator

       xspim   [-asm/-bare	 -exception/-noexception       -quiet/-noquiet
       -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

       SPIM  S20 is a simulator	that runs programs for the MIPS32 RISC comput-
       ers. 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.

       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.

		 Load  the  standard exception handler and startup code.  This
		 is the	default.

		 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 con-
		 tains 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  de-

       -noquiet	 Do not	print a	message	at exceptions.

		 Enable	the memory-mapped IO facility.	Programs that use SPIM
		 syscalls to read from the terminal cannot  also  use  memory-
		 mapped	IO.

		 Disable the memory-mapped IO facility.

		 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	trans-
		 fers, unless the -bare	flag is	set.

		 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  pro-
		 gram.	 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	inter-
		 rupts 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	 argu-
		 ments	 -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

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

       Instruction opcodes cannot be used as labels.

       James R.	Larus, ``SPIM S20: A MIPS  R2000  Simulator,''	included  with
       SPIM distribution.

       James  R.  Larus,  Computer  Sciences Department, University of Wiscon-
       sin-Madison.  Current address: James R Larus (, Mi-
       crosoft Research.



Want to link to this manual page? Use this URL:

home | help