↑目次 | →第1回の補足
情報科学実験II コンパイラ作成
Marsの使い方
元ミズーリ州立大学教授Pete Sanderson氏のサイトからダウンロードする。このjarファイルを
java -jar Mars4_5.jar
で起動する(.jarファイルの名前はダウンロードしたものに合わせること)。Marsには編集(Edit)画面と実行(Execute)画面があり、タブで切り替えられる。
プログラムの編集
編集画面では、新規作成ができるほか、
(Fileメニュー→Open)にてファイルから読み込むこともできる。外でファイルを編集し直した場合には、一旦、File→Closeで閉じてから、開き直す。
(Runメニュー→Assemble)にてアセンブルを行う。
プログラムの実行
実行画面は次のように、textセグメント(プログラム)、dataセグメント、レジスタ、入出力の部分からなっている。
textセグメントとプログラムの実行
textセグメントの部分は次の構造になっている。
プログラムは次の操作によって実行できる。
 | (Run→Go) | 連続実行 |
 | (Run→Step) | 1命令を実行 |
 | (Run→Reset) | 最初に戻る |
 | (Run→Pause) | 一時停止 |
 | (Run→Stop) | 強制終了 |
また、ブレークポイント(Bkpt)の□にチェックを入れておくと、そこでプログラムの実行が一時停止する。
レジスタの表示
レジスタの部分は、各レジスタの名前と番号、その値の一覧が表示される。MIPSは浮動小数点演算ができるコプロセッサもあってその値も表示できる。今回の実験では、Registersタブで表示されるMIPSのレジスタだけを用いる。
dataセグメント
dataセグメントの内容な1ワード(4バイト)ずつ表示される。どの部分を表示するかをドロップダウンリストから選ぶ。スタックの内容を表示するならばcurrent $sp、大域変数の内容であれば、0x1001000(.data)を選ぶ。表示内容は16進数がデフォルトである。Hexadecimal AddressesとHexadecimal Valuesのチェックを外すとアドレスとその内容がそれぞれ10進数で表示される。
入出力/メッセージ
実行時のsyscallによる入出力(Run I/O)とメッセージ(Mars Message)は、タブで表示を切り替える。syscallによる入出力はこのウィンドウのRun I/Oタブの上で実行される。Clearボタンで表示を消去できる。
トップページ