[PC SPIM] MIPS pseudo instruction

di il
4 risposte

[PC SPIM] MIPS pseudo instruction

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

4 Risposte

  • Re: [PC SPIM] MIPS pseudo instruction

    Ho provato il programma con QtSpim 9.1.7 e funziona regolarmente
  • Re: [PC SPIM] MIPS pseudo instruction

    Grazie, proverò con quel programma!
  • Re: [PC SPIM] MIPS pseudo instruction

    Ciao, lo ho provato con la versione che mi hai consigliato ed effettivamente ora carica il file senza darmi quell'errore. Infatti in basso posso leggere:
    SPIM Version 9.1.9 of January 19, 2013
    Copyright 1990-2012, James R. Larus.
    All Rights Reserved.
    SPIM is distributed under a BSD license.
    See the file README for a full copyright notice.
    C:\Users\rdilillo\Desktop\Pcspim\Hanoi.asm successfully loaded
    Tuttavia non sembra partire, Anche spammando il tasto non accade nulla.
    Consigli? Idee?
  • Re: [PC SPIM] MIPS pseudo instruction

    darkoop4 ha scritto:


    Consigli? Idee?
    Che ne dici di attivare la Console dal menu Window?
Devi accedere o registrarti per scrivere nel forum
4 risposte