演習6-3を解いて見ました。乗算をするサブルーチンがあるという前提でそれを使って階乗を求める問題です。
いきなりPOCOの命令を書こうとしても混乱するので、どのレジスタに何を入れてどう計算してどう判断してというレベルでコメントを先に書き、次に命令に置き換えました。
それにしてもちょっと何かしようとしてもレジスタが壊れるので別レジスタへの退避が必要となります。うまく考えればもう少しレジスタの使用量を減らせるのかもしれませんし、RISCだとこうなるのはしかたないのかまだ判断がつきません。RISCだからじゃなくてレジスタを破壊しないで判定結果をフラグに残す命令をPOCOが持たないから、と考えるべきなのかも。
今日はプログラムを書いただけ。次回シミュレーションして確認します。
いきなりPOCOの命令を書こうとしても混乱するので、どのレジスタに何を入れてどう計算してどう判断してというレベルでコメントを先に書き、次に命令に置き換えました。
それにしてもちょっと何かしようとしてもレジスタが壊れるので別レジスタへの退避が必要となります。うまく考えればもう少しレジスタの使用量を減らせるのかもしれませんし、RISCだとこうなるのはしかたないのかまだ判断がつきません。RISCだからじゃなくてレジスタを破壊しないで判定結果をフラグに残す命令をPOCOが持たないから、と考えるべきなのかも。
今日はプログラムを書いただけ。次回シミュレーションして確認します。