: [SPIM] 配列の和
: マイクロプロセッサ演習
: マイクロプロセッサ演習
配列 (前回の補足)
前回のプログラム LoadStore3.asm は以下の流れを実行するプログラムであった。
- メモリに、データ 4 つ分 (4 バイト 4 16 バイト) の領域を確保。
- 先頭の 3 つのデータ領域 (array[0] ~ array[2] と呼ぶことにする) に整数 1、2、3 を格納。
- array[0] ~ array[2] の値をレジスタ $s0, $s1, $s2 にロード。
- $s0 $s1, $s2 の和を $s3 に格納。
- $s3 の値をメモリ上の array[3] にストア。
この流れの概念図を示したのが図 1 である。
図 1:
LoadStore3.asm のプログラムの流れの概念図
|
この流れの中で 3. ~ 5.、すなわち
「メモリから値をレジスタにロードし、計算を実行した後、結果を
メモリ上にストアする」
という流れは重要であり、今後の演習でも頻出するので、
しっかり身につけて欲しい。
なお、ここではメモリ上の 4 つのデータ領域を array[0] ~ array[3] と
呼んだが、これは C 言語の配列の記法に従ったものである。
配列とはデータが表の様に複数個並んだものである。
例えば、50 人のクラスのテストの点数は配列 array[] に、
「array[0] 80, array[1] 70, , array[49]58」
などと格納できる。
要素が 個の配列は array[0] ~ array[]で表されることに注意。
また、配列の添字は 1 づつ増えるが、メモリアドレスは 4 づつ増えることにも
注意しよう (メモリの 1 ワードが 4 バイトであることによる)。
平成16年11月1日