前回の while 文もそうであったが、MIPS のアセンブリ言語には if 文に直接 対応するものがあるわけではなく、条件命令や分岐命令 (beq、bne、slt、j など) とラベルを 組み合わせることで if 文を実現している。 なお、図中の ``ENDIF" は単なるラベルであり、好きな名前をつけて構わない。
本章で実際に if 文を書いてもらう。 いつもどおり、data05.zip をダウンロードしよう。 この中に、今日の演習で使うプログラムの雛形が入っている。 If.asm がこの問題で作成してもらうプログラムの雛型である。
メモリ上に array[0]、array[1] が確保されており、ともに 2 が代入されている。 また、msg というラベルで ``equal." という文字列が格納されている。
このファイルに追加する形で、 「array[0] array[1] ならば msg をコンソールに出力。array[0] array[1] なら何もしない。」 というプログラムを作成せよ。 なお、msg を画面に出力するには、
また、array[0] と array[1] の値をいろいろ変えて保存&実行し、
分岐が正しく行なわれることを確認せよ。