我正在尝试用 MIPS 设计一个基本的计算器。我提示用户输入第一个操作数、运算符,然后是第二个操作数。我获取并存储第一个操作数,但在用户输入运算符后,第二个操作数的提示出现在同一行,紧随用户输入之后。这是我的意思的一个示例:
Enter first number: 8
Select operator: -Enter second number: 3
Result: 5
-- program is finished running (dropped off bottom) --
“输入第二个数字”打印在减号之后。我使用读取字符串,字符串长度 = 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
“运算符”是我在 .data 下声明的 .word 变量。然后我使用系统调用 4 打印下一个提示。我认为这里发生了一些我错过的微妙事情。我对 MIPS 还是很陌生,所以任何指针都会很棒。