Bonjour chers amis developpeurs,
j'ai eu à faire cet exercice que je vous propose mainteneant lors d'un concours, je vous avoue que n'y connais rien en programmation assembleur. Mais c'était un concours, alors je n'avais pas le choix. En attendant que les resultats sortent, je vous le soumets dans l'espoir d'avoir des solutions de programmation en assembleur pour l'architecture 6809.
Il s'agit d'effectuer un tri dans un tableau pour ordonner celui-ci dans l'ordre décroissant des valeurs numériques.
Les données sont des nombres non signés, codés en hexadécimal et compris entre 0 et 255.
Le tableau est en mémoire centrale à partir de l'adresse TAB. L'exploration du tableau se fait par l'examen de deux données successives comme suit :
- si les deux données sont rangées dans le bon ordre on continue l'exploration ;
- si les deux données ne sont pas rangées dans le bon ordre, on les permute et on continue l'exploration.
Lorsqu'on a terminé l'exploration du tableau, on recommence jusqu'à ce que lors d’une exploration complète l'on ait effectué aucune permutation.
Organigramme proposé :
Soit T(I) la ième donnée du tableau, on fera l'exploration en faisant varier I.
Pour savoir quand arrêter le tri, on testera l'indicateur binaire P contenu dans la position mémoire MEM.
P sera mis à zéro au début de chaque exploration et à "1" lorsqu'il y aura eu permutation de données.
Après avoir examiné l'organigramme de la page suivante, écrire le programme correspondant.
Partager