В этой программе я пытаюсь прочитать целочисленное значение и проверить, является ли оно четным или нечетным. Если он четный, я делю его на два, а если он нечетный, тогда я умножаю его на 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
Теперь, когда я запускаю программу, все работает, я могу прочитать на входе и правильно и вывести соответствующие сообщения. Когда дело доходит до выполнения вычислений, вместо вывода результата выводятся два маленьких прямоугольника, которые при копировании в текстовый файл отображаются с вопросительными знаками. Любая помощь приветствуется.