トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2022
留意点 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 4 years ago
Last modified on Apr 5, 2022 4:04:39 PM
