next up previous
: [SPIM] switch 文 : マイクロプロセッサ演習 : [SPIM] if 文


[SPIM] if-else 文

C 言語における if-else 文は 図 3 のように実現される。
図 3: C 言語における if-else 文
\begin{figure}{\tt
\hspace*{1cm}if(条件)\{\\
\hspace*{1cm}\hspace*{1cm} 命令1;\...
...\}else\{\\
\hspace*{1cm}\hspace*{1cm} 命令2;\\
\hspace*{1cm}\}
}\end{figure}
``条件" が成立する時は命令 1 が、 成立しない時は命令 2 が実行される。 これを MIPS のアセンブリ言語で実現するには図 4 のようにする。
図 4: MIPS のアセンブリ言語における if-else 文
\begin{figure}\begin{center}\epsfxsize =8cm \epsfbox{ifelse.eps}\end{center}\end{figure}
本章ではこの if-else 文を記述してもらう。 プログラムの雛型は IfElse.asm である。

メモリ上に array[0]、array[1] が確保されており、ともに 2 が代入されている。 また、msg1 というラベルで ``equal." という文字列が、 msg2 というラベルで、``not equal." という文字列が 格納されている。

このファイルに追加する形で、 「array[0] $=$ array[1] ならば msg1 をコンソールに出力。array[0] $\ne$ array[1] ならmsg2 をコンソールに出力。」 というプログラムを作成せよ。

また、array[0] と array[1] の値をいろいろ変えて、分岐が正しく行なわれている ことを確認せよ。


平成16年11月8日