Я продолжаю получать знаки вопроса при выполнении этой программы в MIPS, по какой причине? - PullRequest
0 голосов
/ 05 февраля 2020

В этой программе я пытаюсь прочитать целочисленное значение и проверить, является ли оно четным или нечетным. Если он четный, я делю его на два, а если он нечетный, тогда я умножаю его на 2, а затем добавляю к нему один. Вот что у меня пока есть:

.data
value1: .word 4
value2: .word 2
value3: .word 3
msg1: .asciiz " divide by 2 = "
msg2: .asciiz " * 3 + 1 = "
prompt: .asciiz "Please enter a number:"

.text
main:
    li $v0, 5
    syscall
    move $t0, $v0

    li $v0, 1
    move $a0, $t0
    syscall

    andi $t0, $a0, 1
    beq $t0, $zero, EVEN
    move $t1, $a0

    la $a0, msg2
    li $v0, 4
    syscall
    move $a0, $t1
    j EXIT

EVEN:
    la $a0, msg1
    li $v0, 4
    syscall

    move $a0, $t1
    lw $t2, value2
    div $a0, $a0, $t2
    li $v0, 4
    syscall

EXIT:
    li $v0, 10
    syscall

Теперь, когда я запускаю программу, все работает, я могу прочитать на входе и правильно и вывести соответствующие сообщения. Когда дело доходит до выполнения вычислений, вместо вывода результата выводятся два маленьких прямоугольника, которые при копировании в текстовый файл отображаются с вопросительными знаками. Любая помощь приветствуется.

...