0

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 に慣れていないので、何かアドバイスをいただければ幸いです。

4

1 に答える 1

0

「Enter second number」文字列の前にキャリッジ リターン/ラインフィード シーケンスを出力できます。

# 13=carriage return, 10=linefeed, 0=null terminator
CRLF: .byte 13,10,0

syscall 4 を使用して印刷します。

于 2013-09-30T17:26:54.750 に答える