Ciao..
dovrei risolvere questo problema: dato un vettore di dimensione n ed un valore k, devo effettuare la ricerca lineare nel vettore restituendo la posizione in cui si trova oppure -1 se non è presente:
la mia idea era quella di confrontare uno a uno ogni elemento del vettore con il valore k solo che non riesco a passare all'elemento successivo nel vettore(o meglio riesco solo che essendo lungo n dovrei trovare un metodo che richiamando se stesso va avanti) vi posto quello che ho fatto finora:
.data
array: .word 1,2,3,-1,-2,-3 (dato valori solo per un esempio tipo)
dim: .word 6
.text
la $t0, array #carico array $t0
lw $t1, dim #dimensione array in $t1
li $t2, 0 #contatore posizione
li $t3, 0 #se non trovato da -1 altrimenti 0
li $t4, 3 #valore da ricercare nel vettore (es. prendo il numero 3)
beq $t1, $zero, nontrovato #dimensione è 0 va diretto a nontrovato dando -1
addi $t1, $t1 , -1
lw $s0, 0($t0)
lw $s1, 4($t0)
beq $s0, $t4, fine
loop:
beq $s1, $t4, fine
lw $s0, 4($s1) #qui son in difficolatà perchè non so come far passare all'elemento
sucessivo senza ogni volta dover scrivere 4-8-12-16...v
addi $t2, $t2, 1
bne $s0, $t4, loop
nontrovato:
li $t3, -1
fine:
addi $t2, $t2, 1
qualcuno riuscirebbe a darmi qualche dritta???
grazie in anticipo
ciao