【问题标题】:MIPS Error: Not outputting prompts on new lineMIPS 错误:不在新行上输出提示
【发布时间】:2013-09-30 16:57:55
【问题描述】:

我正在尝试使用 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 变量。然后我使用系统调用 4 打印下一个提示。我认为这里发生了一些我错过的微妙事情。我对 MIPS 还是很陌生,所以任何指针都会很棒。

【问题讨论】:

  • 没有理由发生这种情况。通常,当用户按下回车键时,行会前进。要调查这个问题,我们真的必须查看输入序列的其余部分(即在输出第二个提示之前调用的内容)

标签: mips output


【解决方案1】:

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

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

使用系统调用 4 打印它。

【讨论】:

  • 只需将 \n 添加到字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-11
  • 2021-09-11
  • 2022-08-17
  • 2016-10-31
  • 1970-01-01
  • 2022-11-14
相关资源
最近更新 更多