wiki:Ex01 演習の留意点2021

トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2021

留意点 1

以下の表に示された以外の命令は使わないこと。

区分 命令 意味
算術演算 add add $1,$2,$3 $1=$2+$3
subtract sub $1,$2,$3 $1=$2-$3
add immediate addi $1,$2,100 $1=$2+100
論理演算 and and $1,$2,$3 $1=$2&$3
or or $1,$2,$3 $1=$2|$3
and immediate andi $1,$2,100 $1=$2&100
or immediate ori $1,$2,100 $1=$2|100
データ転送 load word lw $1,100($2) $1=メモリ[$2+100]
store word sw $1,100($2) メモリ[$2+100]=$1
条件分岐 branch on equal beq $1,$2,100 if($1==$2) go to PC+4+100
比較演算 set on less than slt $1,$2,$3 if($2<$3) $1=1;else $1=0
set less than imm.slti $1,$2,100 if($2<100) $1=1;else $1=0
ジャンプ jump j 10000 go to 10000
jump register jr $rs go to $rs
jump and link jal 10000 go to 10000; $31=PC+4
疑似命令 load address la $1, A $1 = Aのアドレス

これ以外の命令を使うと、後半の演習で設計するMIPSプロセッサでは動作しません。

レジスタの指定は、$0から$31でも、$zero, $v0, $v1,...でも構いません。 指定があるもの(スタックポインタ,リターンアドレスなど)は、指定通りに使ってください。 以下の課題において、一時的にレジスタを利用する場合は、$8から$15と$24, $25(これらは$t0 - $t9としてもアクセス可能)を使用します。

$1はアセンブラが使用するので、プログラムでは使用しないでください。

留意点 2

シミュレーションはステップ実行で行うこと。方法については演習の時間に説明する。

留意点 3

後の演習や課題、レポートで利用するため、作成するプログラムは全て保存しておくこと。

留意点 4

後半の演習で設計するMIPSプロセッサでは、システムコールを実装しないので、exit システムコールは利用できません。 プログラムの最後で停止させたいときは、自分自身にジャンプさせ無限ループさせるようなコードを挿入します。

例:

exit: j exit
Last modified 5 years ago Last modified on Apr 12, 2021 2:55:21 PM