Проблема программирования MIPS - PullRequest
0 голосов
/ 14 сентября 2010

У меня проблема с 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

1 Ответ

0 голосов
/ 15 сентября 2010

Решил это. Оказалось, spim и xspim совершенно тупые, глючные и неправильные. Я пропустил этот код через Марс, и он работал отлично. Я счастлив сейчас:)

...