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


Ignore:
Timestamp:
Mar 31, 2015 2:46:41 PM (11 years ago)
Author:
nakasato
Comment:

--

Legend:

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

    v2 v3  
    3434}}} 
    3535 
     36= 単純な代入文 =  
     37定数の代入文はor immediate命令とstore word命令の組み合わせで実現できます。 
     38 
     39例えばC言語のコード 
     40{{{ 
     41A = 15; 
     42}}} 
     43 
     44は、擬似的なアセンブリプログラム 
     45{{{ 
     46$8 = 15; 
     47A = $8 
     48}}} 
     49に置き換えることができます。 
     50 
     51各行を実行可能な命令に置き換えると: 
     52{{{ 
     53ori $8, $0, 15 
     54sw $8, A 
     55}}} 
     56のようなプログラムに置き換えることができます. 
     57 
     58== 考察事項 ==  
     59 * この2つのアセンブラ命令でA=15が正しく実現できているか考えなさい。 
     60 * なぜ$0が使われるのか? 
     61 * この方法で扱える代入文の右辺の定数の範囲を考えなさい。 
     62 * 符号付き32bitの範囲の定数の代入文を実装する方法を考えなさい。 
     63 
     64== メモリの初期化 == 
     65代入文「A = 15;」は、Aへの代入としてプログラム開始から最初に実行され、一度しか実行されない場合 
     66{{{ 
     67    .data 
     68A: .word 15  
     69}}} 
     70とすることで、アセンブリプログラムによるメモリ領域の初期化によっても実現できます。 
     71しかし、この初期化を含んだプログラムをサブルーチンに用いる場合、一回目の実行でAの値が変更されてしまうと、 
     722回目以降の呼び出しにおいてAは15以外の値を持つ可能性があります。 
     73この様な場合、上記のようにori命令とsw命令の組み合わせで代入文を実現します。 
     74 
     75= 例題1 =  
     76