2

現在、MIPS と QTSPIM エミュレーターを使用してコーディングする方法を学んでいます。簡単な算術計算機を作るのはいい練習になると思ったので、コーディングを始めました。これまでのところ、プログラムは数値を要求し、数値を読み取り、演算を要求しています (ユーザーは演算記号 +、-、*、またはイニシャル a、s、m、d のいずれかを入力する必要があります)。次のステップは、受け取った入力を何かと比較することです...これは私が立ち往生している部分です。私の最初の考えは、すでに文字が入っている4つのレジスターを用意することだったので、試しました

    li $t5,a
    li $t6,s
    li $t7,m
    li $t8,d

ただし、構文エラーが発生するだけです。他の同様の方法をいくつか試しましたが、エラーが発生し続けました。私の目的は、ユーザー入力をこれら 4 つのレジスターと比較してから、操作に移ることでした。

    beq $t2,$t5,add
    beq $t2,$t6,sub
    beq $t2,$t7,mul
    beq $t2,$t8,div

$t2 には、ユーザーが入力した文字が含まれます。次に、適切なラベルに分岐して操作を実行します。

私が見落としているこれを行う簡単な方法はありますか?御時間ありがとうございます。

4

2 に答える 2

0

レジスタをASCIIコードで設定するには、レジスタを一重引用符で囲む必要があります。あなたの例では、

  li $t5,'a'
  li $t6,'s'
  li $t7,'m'
  li $t8,'d'
于 2012-05-14T12:46:53.787 に答える
0

まあ、私は自分の問題を解決することができました XD 解決策は少し原始的ですが、うまくいきます... 操作プロンプトを変更し"1 for addition, 2 for subtraction, 3 for multiplication, 4 for division"、ユーザー入力をそれらと比較しました。

    beq $t2,1,add
    beq $t2,2,sub
    beq $t2,3,mul
    beq $t2,4,div

あとは操作そのものです。他の誰かが同様の問題に遭遇した場合に備えて、これをここに残しておくと思います。多分私はメモリを追加し、関数をクリアします

于 2012-05-13T15:50:50.723 に答える