Changes between Initial Version and Version 1 of Ex01 演習の留意点2022


Ignore:
Timestamp:
Apr 5, 2022 4:04:16 PM (4 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ex01 演習の留意点2022

    v1 v1  
     1トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2022 
     2 
     3= 留意点 1 = 
     4以下の表に示された以外の命令は使わないこと。 
     5 
     6||区分 ||命令 ||例 ||意味 || 
     7||算術演算 ||add ||add $1,$2,$3 ||$1=$2+$3 || 
     8||              ||subtract      ||sub $1,$2,$3 ||$1=$2-$3 || 
     9||         ||add immediate ||addi $1,$2,100 ||$1=$2+100 || 
     10||論理演算 ||and           ||and $1,$2,$3 ||$1=$2&$3 || 
     11||         ||or            ||or $1,$2,$3 ||$1=$2|$3 || 
     12||         ||and immediate ||andi $1,$2,100 ||$1=$2&100 || 
     13||         ||or immediate  ||ori $1,$2,100  ||$1=$2|100 || 
     14||データ転送 ||load word   ||lw $1,100($2)  ||$1=メモリ[$2+100] || 
     15||           ||store word  ||sw $1,100($2)  ||メモリ[$2+100]=$1    || 
     16||条件分岐   ||branch on equal   ||beq $1,$2,100  ||if($1==$2) go to PC+4+100 || 
     17||比較演算   ||set on less than  ||slt $1,$2,$3   ||if($2<$3) $1=1;else $1=0 || 
     18||           ||set less than imm.||slti $1,$2,100 ||if($2<100) $1=1;else $1=0 || 
     19||ジャンプ   ||jump              ||j 10000        ||go to 10000     || 
     20||           ||jump register     ||jr $rs         ||go to $rs || 
     21||           ||jump and link     ||jal 10000      ||go to 10000; $31=PC+4 || 
     22||疑似命令 ||load address ||la $1, A ||$1 = Aのアドレス ||  
     23 
     24これ以外の命令を使うと、後半の演習で設計するMIPSプロセッサでは動作しません。 
     25 
     26レジスタの指定は、$0から$31でも、$zero, $v0, $v1,...でも構いません。 
     27指定があるもの(スタックポインタ,リターンアドレスなど)は、指定通りに使ってください。 
     28以下の課題において、一時的にレジスタを利用する場合は、$8から$15と$24, $25(これらは$t0 - $t9としてもアクセス可能)を使用します。 
     29 
     30$1はアセンブラが使用するので、プログラムでは使用しないでください。 
     31 
     32= 留意点 2 = 
     33シミュレーションはステップ実行で行うこと。方法については演習の時間に説明する。 
     34 
     35= 留意点 3 = 
     36後の演習や課題、レポートで利用するため、作成するプログラムは全て保存しておくこと。 
     37 
     38= 留意点 4 = 
     39後半の演習で設計するMIPSプロセッサでは、システムコールを実装しないので、exit システムコールは利用できません。 
     40プログラムの最後で停止させたいときは、自分自身にジャンプさせ無限ループさせるようなコードを挿入します。 
     41 
     42例:  
     43{{{ 
     44exit: j exit 
     45}}}