cs_Toutouillee
Messages postés3Date d'inscriptionjeudi 7 mai 2009StatutMembreDernière intervention 8 mai 2009
-
7 mai 2009 à 16:45
cs_Toutouillee
Messages postés3Date d'inscriptionjeudi 7 mai 2009StatutMembreDernière intervention 8 mai 2009
-
8 mai 2009 à 01:11
Bonjour,
je cherche quelqu'un qui pourrait éclaircir quelques notions pour moi.
Je m'explique :
Je dois traduire un code C en assembleur, ce code est un tri de liste chainée.
Je débute en assembleur et j'ai du mal à saisir comment déclarer mes pointeurs, et les manipuler.
Mon code en C :
#include <stdio.h>
#include "tri-liste.h"
Noeud* tri_liste(Noeud* premier){
//variables
Noeud* triee;
Noeud* max;
Noeud* prec;
Noeud* tmp;
Noeud* precmax;
triee=(Noeud*)NULL;
while (premier!=(Noeud*)NULL) {
max=premier;
prec=premier;
precmax=premier;
tmp=premier->suiv;
//determination du max
while (tmp!=(Noeud*)NULL) {
if ((tmp->val)>(max->val)) {
precmax=prec;
max=tmp;
}
prec=tmp;
tmp=tmp->suiv;
}
//on change les pointeurs
if (max==premier){
premier=premier->suiv;
max->suiv=triee;
triee=max;
} else {
precmax->suiv=max->suiv;
max->suiv=triee;
triee=max;
}
}
return triee;
}
Si besoin je mettrais le reste, pour le moment je cherche juste à manipuler mes pointeurs, et à comparer les valeurs de ce qu'ils pointent.