Я пытаюсь разработать базовый калькулятор с 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
«оператор» — это переменная .word, которую я объявил в .data. Затем я использую системный вызов 4, чтобы напечатать следующее приглашение. Я думаю, что здесь происходит какая-то тонкая вещь, которую я упускаю. Я все еще новичок в MIPS, поэтому любые указатели были бы потрясающими.