Provided by: spim_8.0+dfsg-6_amd64 bug

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.

                                                                                          spim(1)