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 :)
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 :)