Ho fatto altre prove ma non riesco a sistemarlo..e credo che neanche voi sappiate aiutarmi con quel codice da me scritto
Quindi modifico il quesito:
Ho a disposizione i registri: eax,ebx,ecx,edx,esi,edi ma le variabili su cui devo lavorare sono più di 6 quindi mi sembra chiaro che sbaglio qualcosa nell'associazione delle variabili.
Nel caso particolare in cui la funzione invia il vettore e il numero degli elementi, in lettura avrò:
mov eax, dword ptr[ebp+8] ;lettura vettore di interi
mov bx, word ptr[ebp+12] ;lettura numero elementi del vettore (intero)
Per l'algoritmo dell'ordinamento mi servono 2 contatori (di tipo intero), quindi utilizzerò esi e edi.
Un contatore andrà da 0 a N (bx) ma un altro andrà fino a (N-1) quindi mi serve un'altra variabile che memorizzi (N-1) (facciamo ECX)
Mi serve inoltre memorizzare l'indice del più piccolo valore trovato e quindi mi serve un'altra variabile-registro (facciamo che utilizzo il registro EDX).
Per scambiare i valori dovrò anche memorizzare il valore del vettore che andrò a modificare e quindi mi serve un'altra variabile-registro (quale?).
Quindi ho 6 registri (che utilizzo
sicuramente male) e 7 variabili. Non fate caso al tipo di algoritmo che utilizzo ed alle possibili modifiche che potrei fare al codice per ridurre il numero di variabili: ho altri esercizi in cui si presenta lo stesso problema quindi vorrei concentrarmi proprio sulla questione variabili>registri
Sapete dirmi come risolvere il problema?
Spero che ci sia qualcuno in grado di aiutarmi vi ringrazio in anticipo!