MIPS错误:未在新行上输出提示

MIPS错误:未在新行上输出提示,mips,output,Mips,Output,我正在尝试用MIPS设计一个基本的计算器。我向用户提示第一个操作数、运算符,然后是第二个操作数。我获取并存储第一个操作数,但在用户输入运算符后,第二个操作数的提示会立即出现在同一行上,即在用户输入之后。以下是我的意思示例: Enter first number: 8 Select operator: -Enter second number: 3 Result: 5 -- program is finished running (dropped off bottom) -- “输入第二个数字”

我正在尝试用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

“operator”是我在.data下声明的.word变量。然后,我使用syscall4打印下一个提示。我想这里发生了一些微妙的事情,我错过了。我对MIPS还很陌生,所以任何指针都非常棒。

您可以在“输入第二个数字”字符串之前打印回车/换行序列


使用syscall 4将其打印。

只需对字符串进行预挂\n没有理由发生这种情况。通常,当用户按下enter键时,该行将前进。要研究这个问题,我们必须查看输入序列的其余部分(即,在输出第二个提示符之前调用的内容)
# 13=carriage return, 10=linefeed, 0=null terminator
CRLF: .byte 13,10,0