alessandroloro
13-01-2012, 14:30
Salve a tutti!
Sono un neofita di MIPS, e sapendo programmare in Java mi trovo in grossa difficoltà...Allora io dovrei creare un programma che mi prende un valore da tastiera, il quale determina la dimensione dell ' array, poi prendere i valori dell array sempre in input; ed infine riordinarli.
Sono giorni che ci provo ma senza successo.... ora posto il testo del mio pseudo programma
.data
str: .asciiz "inserisci valore: "
numb: .space 256
dim: .asciiz "Quanti valori vuoi inserire? "
ndim: .space 256
val: .asciiz "valore->"
.text
.globl loop
size: li $v0, 4 #stampa dim
la $a0, dim
syscall
la $a0, ndim #input numero
li $a1, 256
li $v0, 5
syscall
lw $t1, ndim #$t1 dimensione array
li $t2, 0 # $t2 indice
loop: mul $t3, $t2, 4 # $t3 dimensione dell indice
lw $t4, array($t3) # metto in $t4 iesimo elemento
#faccio quello che voglio
li $v0, 4
la $a0, str
syscall
la $a0, numb #input numero
li $a1, 256
li $v0, 5
syscall
addu $t2, $t2, 1 #incremento indice
blt $t2, $t1, loop
.data
array: .word 12, 43, 23, 54, 23
exit:
li $v0, 10
syscall
ora questo mi da un loop infinito quando inserisco i valori...ma gentilmente mi pottreste spiegare qualcosa in merito agli array in mips perche non capisco niente!:muro:
Grazie
Sono un neofita di MIPS, e sapendo programmare in Java mi trovo in grossa difficoltà...Allora io dovrei creare un programma che mi prende un valore da tastiera, il quale determina la dimensione dell ' array, poi prendere i valori dell array sempre in input; ed infine riordinarli.
Sono giorni che ci provo ma senza successo.... ora posto il testo del mio pseudo programma
.data
str: .asciiz "inserisci valore: "
numb: .space 256
dim: .asciiz "Quanti valori vuoi inserire? "
ndim: .space 256
val: .asciiz "valore->"
.text
.globl loop
size: li $v0, 4 #stampa dim
la $a0, dim
syscall
la $a0, ndim #input numero
li $a1, 256
li $v0, 5
syscall
lw $t1, ndim #$t1 dimensione array
li $t2, 0 # $t2 indice
loop: mul $t3, $t2, 4 # $t3 dimensione dell indice
lw $t4, array($t3) # metto in $t4 iesimo elemento
#faccio quello che voglio
li $v0, 4
la $a0, str
syscall
la $a0, numb #input numero
li $a1, 256
li $v0, 5
syscall
addu $t2, $t2, 1 #incremento indice
blt $t2, $t1, loop
.data
array: .word 12, 43, 23, 54, 23
exit:
li $v0, 10
syscall
ora questo mi da un loop infinito quando inserisco i valori...ma gentilmente mi pottreste spiegare qualcosa in merito agli array in mips perche non capisco niente!:muro:
Grazie