Vous aurez besoin pour ce projet d'une machine avec un processeur x86. Vous devez tout d'abord récupérer l'archive compressée de ce projet.
main.c transfo.c transfo.s
Pour construire un exécutable transfo
, en utilisant la version C (transfo.c) placez vous dans le
répertoire optimisation
et tapez la commande :
gcc -o transfo transfo.c main.c
Pour construire un exécutable transfo
, en utilisant la version assembleur (transfo.s) placez vous dans le
répertoire optimisation
et tapez la commande :
gcc -o transfo transfo.s main.c
Rappel: pour générer un code assembleur depuis une version C et ensuite travailler sur cette version assembleur, il faut taper:
gcc -S transfo.c
Le but de ce projet est d'optimiser le code assembleur transfo.s
et/ou transfo.c
afin que
les appels au programme avec les paramètres suivants :
./transfo data/image.pgm data/courbe.amp output.pgm ./transfo data/image2.pgm data/courbe2.amp output2.pgm ./transfo data/image3.pgm data/courbe3.amp output3.pgm
affichent le nombre de cycles machine consommés les plus petits possibles.
Vous devrez donc transformer le code assembleur transfo.s
et/ou transfo.c
afin de le rendre plus efficace. Vous pouvez faire toutes les
transformations que vous voulez et utiliser toutes les instructions que vous
voulez, mais vos transformations doivent préserver le résultat du programme.
Il est à noter que lors de l'évaluation du projet votre
programme sera éventuellement testé avec un autre fichier
'image4
', ce qui vous empêche de faire un programme spécialisé
qui se contenterait de produire un résultat sans aucun calcul.
Vous pouvez vérifier que votre résultat est correct avec:
diff data/res.pgm output.pgm diff data/res2.pgm output2.pgm diff data/res3.pgm output3.pgm
Vous n'avez pas le droit de modifier main.c
. Vous pouvez faire
appel à d'autre bibliothèques si vous le désirez. Vous pouvez également
ajouter des fichiers sources...
La date limite de remise de votre projet est le 11 décembre 2009 à 23h59. Vous devez me rendre pour cette date le code source assembleur de votre code (sous format électronique), avec des commentaires explicites indiquant de manière succincte la façon dont vous avez optimisé le code, ainsi que la machine (type, OS) utilisée.