Changes between Version 18 and Version 19 of Ex01 MIPSアセンブリの基礎2015


Ignore:
Timestamp:
Apr 12, 2015 8:31:33 PM (11 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ex01 MIPSアセンブリの基礎2015

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