У меня проблема с MIPS. Я пытаюсь сделать так, чтобы пользователь вводил любое число, и программа прописывала имя каждой цифры в числе. Так, например, пользователь вводит 495, и машина выдает «Four Nine Five». Я пытаюсь поместить каждую цифру числа в стек, а затем вытолкнуть каждую. Тем не менее, число, которое выталкивается, не является числом, которое кажется помещенным в стек. Я довольно смущен этим и надеюсь, что кто-нибудь может мне помочь! Важный раздел моего кода выглядит следующим образом:
.text
main: li $v0, 5
syscall
move $t0, $v0
# store 10 into a register, because you can't divide by a constant
li $s1, 10
# now the input number is stored in $a0. Time to divide by 10 a few times,
#and store each digit in a stack:
DivideLoop: # $s3 = $s0 / 10
div $t0, $s1
# this is the remainder of the division
mfhi $t3
mflo $t2
# move stack over by 4
addi $sp, $sp, -4
# store remainder in stack
sw $t3, 0($sp)
move $t0, $t2
beq $t2, $zero, PrintLoop
j DivideLoop
# This loop prints each digit
PrintLoop:
# check if stack is empty. If so, branch to exit.
beq $sp, $zero, Exit
# put first word of stack into register $t0
lw $t0, 0($sp)
addi $sp, $sp, 4