PDA

View Full Version : [assembly] mips32 confrontro tra stringhe


drako89
01-06-2011, 14:58
Sto facendo un progetto in mips32.
All'avvio del programma, esso viene chiamato con 2 parametri: "stringa1" e "stringa2".
"stringa1" deve per forza essere uguale ad una delle stringhe presenti in un array che ho dichiarato nella sezione .data, in questo modo:
confronto:.asciiz "hi","hello","ciao","bo","forse"
ho inoltre inserito un ultimo elemento nel vettore confronto: "1", semplicemente per indicare che sono arrivato alla fine del vettore.

se non vado errato, i parametri di input vengono salvati nel registro $a1 (o meglio, il loro indirizzo iniziale), perņ invertiti, quindi sono in questo modo:
"stringa2",0,"stringa1"

per prendere, quindi, il valore di stringa1, dovrei fare una cosa tipo
la $t0,2($a0)
giusto?

per il controllo invece, come posso fare? sto quasi brancolando nel buio: per il momento ho pensato di dover controllare carattere per carattere, finchč non arrivo alla fine della attuale stringa di confronto. se trovo che i caratteri sono uguali, aumento l'offset. questo in loop fino a quando nn arrivo allo 0. se sono arrivato allo 0 (quindi la stringa di confronto č finita) ed č finita anche stringa1, allora significa che il parametro č corretto.
Tutto questo, perņ, in codice, non ho idea di come tradurlo -.-'

Grazie :)