Buongiorno a tutti,
oggi ho cercato di testare vari Source code su PCSPIM ottenendo sempre questo errore:
segue il sorgente della Torre di Hanoi che preferisco tra quelli scaricati:
.data
text1: .asciiz "Sposto il disco da "
text2: .asciiz " a "
text3: .asciiz "Quanti dischi vuoi inserire nella torre? "
endl: .asciiz "\n"
.text
main:
# MODIFICA: $a{0..3}
# $v0
# MODIFICA ind: $t0
addi $sp, $sp, -20
sw $ra, 0($sp)
sw $a0, 4($sp)
sw $a1, 8($sp)
sw $a2, 12($sp)
sw $a3, 16($sp)
addi $v0, $zero, 4
la $a0, text3
syscall # stampa "Quanti dischi [...] ?"
addi $v0, $zero, 5
syscall # v0 = n
addi $a0, $v0, 0 # a0 = n
addi $a1, $zero, 0 # a1 = 0
addi $a2, $zero, 2 # a2 = 2
addi $a3, $zero, 1 # a3 = 1
jal hanoi
lw $ra, 0($sp)
lw $a0, 4($sp)
lw $a1, 8($sp)
lw $a2, 12($sp)
lw $a3, 16($sp)
addi $sp, $sp, 20
j exit
hanoi:
# INPUT: $a0 n
# $a1 origine
# $a2 destinazione
# $a3 appoggio
# MODIFICA: $t0
# $ra
# $v0
# $a{0..4}
beq $a0, $zero, exit # se n == 0 exit
addi $sp, $sp, -20
sw $ra, 0($sp)
sw $a0, 4($sp)
sw $a1, 8($sp)
sw $a2, 12($sp)
sw $a3, 16($sp)
addi $a0, $a0, -1 # n = n-1
xor $a2, $a2, $a3 # swap(a2, a3)
xor $a3, $a2, $a3
jal hanoi
addi $v0, $zero, 4
la $a0, text1
syscall # stampa text1
addi $v0, $zero, 1
add $a0, $a1, $zero
syscall # stampa origine
addi $v0, $zero, 4
la $a0, text2
syscall # stampa text2
addi $v0,$zero,1
add $a0, $zero, $a2
syscall # stampa destinazione
addi $v0, $zero, 4
la $a0, endl
syscall # va a capo
lw $a0, 4($sp) # ripristino gli argomenti
lw $a1, 8($sp)
lw $a2, 12($sp)
lw $a3, 16($sp)
addi $a0, $a0, -1 # n = n-1
xor $a1, $a1, $a3 # swap(a1, a3)
xor $a3, $a1, $a3
jal hanoi
lw $ra, 0($sp)
lw $a0, 4($sp)
lw $a1, 8($sp)
lw $a2, 12($sp)
lw $a3, 16($sp)
addi $sp, $sp, 20
exit:
jr $ra