Introduction à la programmation en assembleur (processeurs 64 bits de la famille 80x86)
Introduction

Tous les langages de programmation dits « évolués » (« structurés », « orientés objet », etc), qu'ils soient compilés ou interprétés, doivent d'une manière ou d'une autre être « traduits » en langage machine avant de pouvoir être exécutés par un ordinateur.

Or, s'il est indiscutable que ces langages ont un grand nombre d'atouts pour le développement de logiciels complexes, en termes de conception, de lisibilité, de portabilité et de maintenance, le revers de la médaille est qu'ils masquent fortement sinon totalement, les limitations de la machine.

Ne pas avoir conscience de ces limitations peut pourtant avoir des conséquences fâcheuses :

  • en terme de performance, dans le cas d'une sous-exploitation des capacités du processeur.

  • en terme de fiabilité, dans le cas d'une sur-estimation des capacités (programmes qui dysfonctionnent ou qui doivent être entièrement ré-écrits dès que le cadre d'utilisation s'élargit).

Or, s'il est quasiment impossible d'écrire un programme conséquent directement en langage machine, il est tout à fait possible de l'écrire en « assembleur », qui n'en est qu'une version légèrement « humanisée ». Connaître les rudiments de la programmation en assembleur peut donc donner des atouts considérables pour la compréhension et la maîtrise de tous les autres langages de programmation.