|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2008
Città: Milano
Messaggi: 8789
|
[Assembly MIPS] Ordinamento di un array
Ciao a tutti
sono alle prese con un progetto per l'università da scrivere in Assembly Mips. Questo progetto prevede, fra le altre cose, il caricamento di alcune parole in un array e la loro stampa in ordine alfabetico. Fino alla stampa ci sono, ma non capisco come ordinarlo. Qualcuno sa aiutarmi? Nel caso posso allegare traccia e codice già scritto Grazie
__________________
Windows 11 Pro - Asus Prime X299-A - i7 7820X- GTX970 - Corsair Vengeance LPX 16GB - Samsung 850 Evo 500GB - OCZ Vertex 3 120GB - Cooler Master Nepton 240M - Phanteks Eclipse P400S - Dell U3821DW - Logitech G602 - Logitech G110 - Logitech G920 - iPhone 16 Pro |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Non ho esperienza con questo particolare assembly, però in linea di massima dovresti fare così:
Prima di tutto crei una funzione per confrontare due stringhe, che ti restituirà due possibili codici, diciamo zero se la prima stringa è uguale o minore della seconda, uno in caso contrario. E' costituita da un loop che scorre i caratteri delle due stringhe, chiamiamoli A e B. All'interno del loop: 1) se A vale zero (prima stringa più corta), ritorni dalla funzione con codice zero; 2) se B vale zero (seconda stringa più corta), ritorni dalla funzione con codice uno; 3) fai la differenza con segno tra A e B; se il risultato è maggiore di zero ritorni dalla funzione con codice uno. Poi devi fare la funzione di scambio delle stringhe. Se il tuo array contiene dei puntatori alle stringhe, sarà molto semplice: dati gli indirizzi degli elementi dell'array (non i valori, che sono i puntatori alle stringhe), A e B: T=*A A=*B *B=T Se invece hai un array di array si applica lo stesso ragionamento, ma dovrai copiare le stringhe intere invece dei puntatori; puoi scambiare un carattere alla volta copiando anche quelli che vanno oltre la fine della stringa, oppure utilizzare un array d'appoggio. A questo punto scegli l'algoritmo di ordinamento, per esempio il bubble sort; con le due funzioni appena create dovrebbe essere semplice implementarlo. Ultima modifica di Daniels118 : 30-01-2014 alle 10:45. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:44.



















