Au contraire, c'est très intéressant d'apprendre l'assembleur pour l'apprendre. Il me semble que c'est expliqué dans la FAQ. L'assembleur ne peut pas être viellot : il est utilisé tous les jours. Les cours d'architecture n'ont pas pour but de former des développeurs en assembleur, mais bien plus de permettre la compréhension de la machine. On peut comprendre de loin des cours d'algorithmique, mais absolument pas pourquoi on s'emmerde à écrire les choses de manière aussi chiantes. Pourquoi est on obligé pour parcourir un tableau d'écrire :
Pour i de 0 à Nombre d'éléments - 1
Alors que l'intution est de dire
Pour chaque élément du tableau
La réponse est là, dans l'assembleur. Ce que peut faire un ordinateur et ce qu'il ne peut pas. Il est par ailleurs totalement impossible d'avoir une compréhension parfaite du C/C++ sans connaître l'assembleur. Le C est construit par dessus l'assembleur par l'intermédiaire de structures de contrôle tout en restant le plus portable possible. (Pas de trucs spécifiques au x86 ou quoi) Il y a une traduction toujours très directe du C/C++ vers l'assembleur, même derrière la programmation orientée objet : On peut faire de la POO en assembleur, et on ne s'y prendrait pas différement de ce que peut faire un compilateur C++.
Comprendre les possibilités de la machine, comprendre les langages de programmation, comprendre les systèmes d'exploitation, l'assembleur y ammène dans son étude, sans qu'on soit forcé de programmer quoique ce soit.
Une très bonne documentation sur l'assembleur (qui vaut son millier de page) est celle d'Intel.
Partager