Man Linux: Main Page and Category List

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)