0

PCspimを使用してユーザーから入力された整数が1〜15の数字のみを入力できるようにし、そうでない場合はエラーメッセージを表示するようにするために、どのような指示をする必要があるのか​​ 疑問に思っていましたか?

SLT などの説明書は読みましたが、定義がよくわかりません。""$s が $t より小さい場合、$d は 1 に設定されます。それ以外の場合はゼロになります。"" 私はゼロを印刷したくありません....

1 より大きく 15 未満を効率的に行う方法はありますか?

私はするだろう

    beq $t0, 1, add_num      #if content in $t0 = 1, branch to add numbers
    beq $t0, 2, add_num
    beq $t0, 3, add_num
    beq $t0, 4, add_num
    beq $t0, 5, add_num  etc...right up to 15. but this is soo inefficient
4

2 に答える 2

1

beq可能なすべての値を必要とするわけではありません。次のような範囲チェックを使用できます (手順を少し変更する必要がある場合があります)。

blez $t0, error_msg        ; disallow antyhing less than 1.

addi $t0, $t0, -15         ; subtract 15 from t0, now
                           ;   valid values are <= 0.

bgtz $t0, error_msg        ; disallow anything greater than 15.

addi $t0, $t0, 15          ; re-adjust

...                        ; add the numbers here
于 2011-11-21T21:52:51.013 に答える