MIPS を使用して基本的な電卓を設計しようとしています。ユーザーに最初のオペランド、演算子、そして 2 番目のオペランドを要求します。最初のオペランドを取得して保存しますが、ユーザーが演算子を入力すると、ユーザーの入力の直後に同じ行に 2 番目のオペランドのプロンプトが表示されます。ここに私が意味するもののサンプルがあります:
Enter first number: 8
Select operator: -Enter second number: 3
Result: 5
-- program is finished running (dropped off bottom) --
「Enter second number」は、マイナス記号の直後に出力されました。演算子を取得するには、文字列の長さ = 2 の読み取り文字列を使用します。これに関連するコードは次のとおりです。
GetOperator:
la $a0, prompt2 #Load prompt 2
add $v0, $zero, 4 #Load syscall 4
syscall
la $a0, operator
add $a1, $zero, 2
add $v0, $zero, 8 #Load syscall 8
syscall #Store the input string to memory
jr $ra
「operator」は、.data の下で宣言した .word 変数です。次に、syscall 4 を使用して次のプロンプトを出力します。ここには、私が見逃している微妙なことが起こっていると思います。私はまだ MIPS に慣れていないので、何かアドバイスをいただければ幸いです。