2

だから私は現在 MIPS で電卓を書いて​​おり、n 選択 k 関数を書こうとしています。使用したいアルゴリズムは次のとおりです。

5 を実行したい場合は 3 を選択すると、(5*4*3)/(3*2*1) を実行するループができます。すでに乗算関数と除算関数があるとします。これを MIPS でどのように実装しますか?

現在、私はこれを持っていますが、まったく機能していません:

calnchoosek:
    move $t1, $a0
    move $t2, $a2

    move $t3, $a0 # copies for the counter
    move $t4, $a2

loop_top:
    beq $t3, $t4, loop_bottom
    subi $t3, $t3, 1

    move $a0, $t1
    move $a2, $t3
    jal multi
    move $t1, $v0

    j loop_top

loop_bottom:
    beq $t4, $zero, exit1
    subi $t4, $t4, 1

    move $a0, $t2
    move $a2, $t4
    jal multi
    move $t2, $v0

    j loop_bottom

exit1:
    move $a0, $t1
    move $a2, $t2
    jal divi

私の論理には完全な欠陥があると考えており、最初からやり直さなければならないかもしれません。誰でも私を助けることができますか?

4

1 に答える 1