Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Programma mips progetto

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[21] Re: Programma mips progetto

Messaggioda Foto Utentephase » 23 lug 2014, 21:49

scusate l'intromissione... Posso chiederti in che università studi? :-) nelle richieste, negli esempi e nelle modalità riconosco qualcosa di familiare
Avatar utente
Foto Utentephase
50 4
New entry
New entry
 
Messaggi: 82
Iscritto il: 23 apr 2013, 16:28

0
voti

[22] Re: Programma mips progetto

Messaggioda Foto UtenteShika93 » 23 lug 2014, 23:45

@WALTERmwp io uno schema mentale me lo sono fatto. L'ho pensata così:
Codice: Seleziona tutto
vocale: .asciiz "aeiou"

quello che voglio è: data una stringa di caratteri devo estrarre un carattere alla volta e vedere se questo è una vocale. In teoria potrei prendere il carattere del cognome e metterlo in un registro (t0); prendere da una stringa il primo carattere (vocale) e metterlo in un secondo registro (t1) e confrontare i due. Se sono uguali non lo voglio, quindi prendo il secondo carattere della vocale e lo confronto di nuovo con t0...E così via fino alla fine della stringa delle vocali.
Se nessuna "non-vocale" non è stata riconosciuta, passo al secondo carattere del cognome e ricomincio a scansionare la stringa della vocali.
Quando trovo un carattere diverso a quelli contenuti nella stinga delle vocali, lo salvo in un terzo registro e ho trovato la mia prima consonante che farà parte del codice fiscale.
Questo è detto a parole. A farlo in pratica (sempre che non ci sia un bug nel mio ragionamento) non è semplicissimo.

Forse mi sono incasinato la vita volendo partire direttamente dall'immissione da tastiera. Forse era più facile mettere il cognome dentro una stringa come per le vocali, cioè
Codice: Seleziona tutto
cognome: .asciiz "rossi"


phase ha scritto:scusate l'intromissione... Posso chiederti in che università studi? :-) nelle richieste, negli esempi e nelle modalità riconosco qualcosa di familiare

Pavia
Avatar utente
Foto UtenteShika93
282 1 5 7
Expert
Expert
 
Messaggi: 848
Iscritto il: 30 dic 2013, 21:28

0
voti

[23] Re: Programma mips progetto

Messaggioda Foto Utentephase » 24 lug 2014, 0:16

Non ne dubitavo... :lol: :lol: ti do un consiglio: non portare programmi troppo difficili perché o dice che li hai copiati da internet o non li guarda nemmeno... io gli ho portato un programma che calcolava la gittata di un proiettile calcolando seno, coseno, ecc.. Ho perso un sacco di tempo. Al'esame non l'ha quasi guardato e mi ha fato un sacco di domande sull'utilizzo di Qtspim (un consiglio: usa pcspim perché non gli piace qtspim :? ) dove trovare i valori dei registri, del PC, i valori memorizzati ecc. Concentrati nel fare un programma semplice che mette in evidenza le tue conoscenze senza perderci la testa :ok:
Ah... non abusare della syscall, a qualcuno ha fatto storie.
Avatar utente
Foto Utentephase
50 4
New entry
New entry
 
Messaggi: 82
Iscritto il: 23 apr 2013, 16:28

0
voti

[24] Re: Programma mips progetto

Messaggioda Foto UtenteShika93 » 24 lug 2014, 0:33

Che bello trovare un collega così per caso. Odio quell'uomo!!!
Si, allora mi studio pcspim e vediamo se riesco a fare qualcosa con questo programma che sto facendo
phase ha scritto:io gli ho portato un programma che calcolava la gittata di un proiettile calcolando seno, coseno, ecc.. Ho perso un sacco di tempo.

Già troppo complicato per i miei gusti
Avatar utente
Foto UtenteShika93
282 1 5 7
Expert
Expert
 
Messaggi: 848
Iscritto il: 30 dic 2013, 21:28

0
voti

[25] Re: Programma mips progetto

Messaggioda Foto UtenteShika93 » 25 lug 2014, 20:20

Non riesco ad uscire dal ciclo di ricerca.
Ho fatto due stringhe:
Codice: Seleziona tutto
cognome: .asciiz "rossi"
voc: .asciiz "aeiou"

e messo dentro il registro t0 e t1 i rispettivi indirizzi delle due stringhe.
carico la prima lettera di "cognome" (in t2), carico la prima lettera di "voc" (in t3 e le confronto.
Se r è diverso da a, se r è diverso da e, se r è diverso da i, se r è diverso da o, se r è diverso da u, allora salva r in s0, dopo di che prendi la seconda lettera del cognome e così via. Per farlo uso la load byte unsigned (sono ascii quindi è senza segno)

Scritto com'è
Codice: Seleziona tutto
lbu $t3, 0($t1)
prende il byte di posizione 0 di t1 (prima vocale) e lo mette in t3 e confronta. r\neq a? se si, salta. Dopo questo salto però devo andare a prendere il byte di posizione 1 di t1 (la seconda vocale) ma non riesco a fare questo incremento. Ho provato anzichè utilizzare la costante 0, un registro e incrementare quello prima di fare il confronto ma all'assemblatore non piace perché vuole solo una costante.
Lo stesso problema si ha ovviamente quando dovrò passare alla seconda lettera del cognome.

Come faccio a risolverlo?
Avatar utente
Foto UtenteShika93
282 1 5 7
Expert
Expert
 
Messaggi: 848
Iscritto il: 30 dic 2013, 21:28

Precedente

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 120 ospiti