next up previous
: [SPIM] 3 つの数の足し算 : マイクロプロセッサ演習 : マイクロプロセッサ演習

今回の演習に必要な予備知識

[レジスタ]

MIPS CPU にはデータを保持する機構として 32 のレジスタがある。レジスタの 1 ワードは 4 バイト (32 ビット) である。32 個のレジスタの内 $t0 $\cdots$ $t7 は一時格納用に、 $s0 $\cdots$ $s7 は変数格納用に主に用いられる。残りのレジスタについては随時紹介してゆく。

[ロードとストアの概念]

ロードとストアの概念図を図 1 に示した。 メモリからレジスタに値をロードする際に命令 lw を、 レジスタからメモリに値をストアする際に命令 sw を用いていることがわかる。

図 1: ロードとストアの概念図
\begin{figure*}\begin{center}\epsfxsize =14cm \epsfbox{loadstore.eps}\end{center}\end{figure*}
これを C 言語に対応させると図 2 のような記述 となるだろう。
図 2:1 に対応する C 言語記述。
\begin{figure}\hspace*{1cm}int a=5;\\
\hspace*{1cm}int b=a;\end{figure}
つまり、メモリアドレス 0x10010000 に対応する変数 a の値を メモリアドレス 0x10010004 に対応する変数 b にコピーしている.

なお、MIPS CPU においてはメモリの 1 ワードは 4 バイトであり、 そのため、メモリアドレスは 4 刻みで増えて行く。

[MIPS CPU のアセンブリ言語の命令]



平成16年10月22日