Lorsqu'on analyse le code assembleur produit par un langage de haut niveau, on est frappé par la pauvreté du résultat:
- le langage de haut niveau utilise moins de 10% des possibilité des instructions de la machine.
- le langage de haut niveau ne tient pas compte du fait qu'il viens à la ligne suivante de travailler une une variable. En permanence il charge et décharge une même variable...
- le langage de haut niveau multiplie les sauts (JUMP) imbriqués alors qu'il n'y a aucune utilité....
..etc....
Un programme en assembleur bien écrit, va utiliser 100% des instructions du processeur et dans touts les cas la mieux adapté à la résolution du problème posé.
Aussi, il est difficilement concevable de transcoder de l'assembleur dans un langage de haut niveau.
C'est théoriquement possible, mais ce serait extrèmement difficile... et, hors recherche théorique, sans intérêt.
En réalité l'utilisation de l'assembleur est intéressante pour plusieur raisons:
a) à titre de formation et culture générale, quelqu'un qui se dit informaticien ne peut se permettre de n'avoir jamais écrit et fait tourner au moins un programme en assembleur...
b) écrire des programmes internes à la machine, pour la réalisation de système d'exploitation, de pilotes, etc...
c) écrire des procédures mis en bibliothèque hautement performantes en terme de volume et de rapidité. Ces procédures seront appelables par les langages de haut niveau.
Sur ce dernier point, dans
www.moteurprog.com > projets > bibliothèque, j'ai commencé une telle bibliothèque dans laquelle j'ai placé le code , l'ordino, la doc... Pour ceux qui souhaitent s'attaquer à l'assembleur cela peut servir d'exemples....
Moby