SPIM

SPIMは、MIPSプロセッサシミュレータであり、MIPSアーキテクチャのアセンブリ言語を実行するように設計された。
このプログラムはR2000とR3000プロセッサをシミュレーションするもので、James R. Larusによって書かれた。
MIPS機械語は大学レベルのアセンブリの講義で教えられることが良くある。特に、デイビッド・パターソンとジョン・ヘネシーの著作である『コンピュータの構成と設計〜ハードウエアとソフトウエアのインタフェース』という教科書が使われる。

SPIMシミュレーションはWindows用のPCSpim、Mac OS XとUNIX/Linux用のxspimとがある。

名前の由来は「MIPS」を逆から読んだものである。

 SPIMで使用されるシステムコールの例 
 サービス  トラップコード  インプット  アウトプット  補足 print_int(整数の表示) $v0 = 1  $a0 = 表示する整数  標準出力に$a0を表示する  print_float(浮動小数点の表示) $v0 = 2  $f12 = 表示する浮動小数点  標準出力に$f12を表示する  print_double(倍精度浮動小数点の表示) $v0 = 3  $f12 = 表示する倍精度浮動小数点  標準出力に$f12を表示する  print_string(文字列の表示) $v0 = 4  $a0 = 最初の文字のアドレス    文字列を標準出力に表示する read_int(整数の読み込み) $v0 = 5     標準入力から整数を読み込んで$v0に格納する  read_float(浮動小数点の読み込み) $v0 = 6     標準入力から浮動小数点を読み込んで$f0に格納する  read_double(倍精度浮動小数点の読み込み) $v0 = 7     標準入力から倍精度浮動小数点を読み込んで$f0に格納する  read_string(文字列の読み込み) $v0 = 8  $a0 = 文字列を格納するアドレス、$a1 = 文字列の最大長さ  標準入力から読み込み$a0のアドレスに格納する  sbrk(メモリの割り当て) $v0 = 9  $a0 = 必要とされるバイト数  $v0= 割り当てられたメモリのアドレス  ヒープからメモリを割り当てる exit(終了) $v0 = 10      print_char(文字の表示) $v0 = 11  $a0 = 文字(下位8ビット)    read_char(文字の読み込み) $v0 = 12    $v0 = 文字(改行なし)をエコーする  file_open(ファイルを開く) $v0 = 13  $a0 = フルパス(ゼロで、改行なしの文字列は終端する)、$a1 = フラグ, $a2 = UNIXの8進数ファイルモード(0644ならばrw-r--r--を意味する)  $v0 = ファイルディスクリプタ  file_read(ファイルを読み込む) $v0 = 14  $a0 = ファイルディスクリプタ、$a1 =バッファアドレス、$a2 = 読み込むバイト数  $v0 = ファイルからバッファに読み込んだデータ量(-1 = エラー、0 = ファイルの終端)  file_write(ファイルへ書き込む) $v0 = 15  $a0 = ファイルディスクリプタ、$a1 = バッファアドレス、$a2 = 書き込むバイト数  $v0 = バッファからファイルへ書き込んだデータ量(-1 = エラー、0 = ファイルの終端)  file_close(ファイルを閉じる) $v0 = 16  $a0 = ファイルディスクリプタ   
 フラグ: 

読み込み = 0x0, 書き込み = 0x1, 読み込み/書き込み = 0x2

OR 作成 = 0x100, サイズ0で作成 = 0x200, 追記 = 0x8

OR テキスト = 0x4000, バイナリ = 0x8000

 SPIMの代替製品、競合製品 
MARS (MIPS Assembler and Runtime Simulator)はJavaベースのMIPSアセンブリ言語のIDEであり、SPIMの代替となる。最初のリリースは2005年であり、活発に開発が進められている。

 脚注 

 関連項目 
 GXemul (旧名mips64emul) MIPSエミュレータである。裸のMIPS命令セットの実装をエミュレートするSPIMと異なり、GXemulはMIPSマイクロプロセッサベースの完全なコンピュータシステムをエミュレートする。例えばDECstation 5000 Model 200をエミュレートする。
 QEMUもMIPSをエミュレートする。
 MIPSアーキテクチャ

 外部リンク 
公式サイト シミュレータをダウンロードできる
ウェブ版のSPIM

Category:エミュレーションソフトウェア