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

FreeBSD Manual Pages

  
 
  

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

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

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

       -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	trans-
		 fers, 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  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.

       -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 argu-
		 ments <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 Wiscon-
       sin-Madison.  Current address: James R Larus (larus@microsoft.com), Mi-
       crosoft Research.

								       spim(1)

NAME | SYNTAX | DESCRIPTION | OPTIONS | BUGS | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=spim&sektion=1&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help