: 参考文献
: マイクロプロセッサ演習
: [問題] 第二回の演習問題
今回も前回に引続き SPIM シミュレータを使う練習を行う。
前回は文字列 (``Hello World.") を表示させるプログラムだったが、
今回は 2 つの整数値の足し算を行うプログラムである。
まず、ファイルdata02.zip をダウンロードして欲しい。
このファイルを解凍すると ``Add.asm" というソースファイルが
出て来るので、このファイルを前回 spim をインストールしたフォルダに
移動する。
(前回の指示に従っていれば w: Install PCspim である。)
まず Add.asm をテキストエディタ (秀丸) で開き、
中身を確認しておく。コメント (# の後に書かれていること)
を見れば、大体内容を把握できるはずである。
さて、このプログラムを DOS 版 spim (SPIM.EXE) および
Windows 版 spim (pcspim.exe) の両方で実行してもらう。
簡単な手順を以下に示す。
DOS 版 (SPIM.EXE) での実行
- SPIM.EXE をダブルクリックする。
- (spim) load "Add.asm" により、プログラムをロード
- (spim) run により、プログラムを実行 (ここでは何も起きない)
- (spim) print $t0 により、結果を確認。(print $t1、print $t2 も試してみよう)
- (spim) exit で DOS 版 spim を終了できるが、ここでは終了せずそのままにしておく。
Windows 版 (pcspim.exe) での実行
- File → Open で Add.asm をロード。
- Simulator → Go で実行。(Run Parameters はそのまま OK)
- Register Display (一番上の窓) の t0, t1, t2 を参照し、DOS 版と同じ結果になっていることを確認する。(Windows 版では 16 進数で結果が表示されることに注意)
なお、レジスタ (register) とは CPU 内部にあるデータを保持する機構である。
このシミュレーションではレジスタ内のデータが書き換えられ、計算が実行されていることが確認できた。
(なお、spim は MIPS R2000 という CPU の振舞いを模倣するシミュレータであることに注意しよう)
次回以降はこのレジスタの振舞いを理解しながら、
プログラムを自分で記述してもらう予定である。
平成16年10月8日