At&t (assembleur)

AT&T (assembleur)

AT&T est le nom donné à une forme de codage en assembleur pour l'architecture x86. Cette forme de codage est apparue avec les premiers UNIX[réf. nécessaire] (AT&T est la société à l'origine d'UNIX). Cette forme est surtout utilisée sous UNIX. Cette syntaxe est utilisée par GAS, l'assembleur du projet GNU.

Sommaire

Concepts

Par opposition à la norme Intel, la norme AT&T place les opérandes dans l'ordre Source avant Destination.

Les principales caractéristiques de cette syntaxe sont :

  • L'assembleur fait toujours la différence entre majuscules et minuscules
  • Les constantes sont écrites avec la notation habituelle en C
  • Les opérandes immédiats (constantes) sont préfixés d'un dollar '$'
  • Les registres sont préfixés d'un '%'
  • Les sauts (jmp/call) absolus sont préfixés d'un astérisque '*'
  • L'indirection (déférenciation) est marquée par des parenthèses : un opérande basé sur EBX+table donne table(%ebx)
  • Ordre des opérandes : Source avant Destination (ordre choisi pour des raisons de compatibilité avec d'autres assembleurs UNIX)
  • La taille des opérandes peut être précisée grâce au dernier caractère de l'opération (en syntaxe Intel, jusqu'au Pentium inclus, des opérateurs spécifiques sur les opérandes sont utilisés, par exemple l'opérateur PTR avec MASM) :
    • bbyte (8 bits - 1 octet)
    • wword (16 bits - 2 octets)
    • sshort (32 bits - 4 octets, pour les opération en virgule flottante)
    • llong (32 bits - 4 octets pour les entiers, 64 bits - 8 octets pour les flottants)
    • qquad (64 bits - 8 octets)
    • tten bytes (80 bits - 10 octets)
    • oocto (128 bits - 16 octets), pour l'architecture x86-64
  • Les sauts « longs » (ljump/lcall) absolus ont la syntaxe suivante : $sélecteur, $offset, et non pas section:offset comme dans la syntaxe des manuels Intel
  • Pas de support pour de multiples segments, les programmes utilisent un unique adressage virtuel linéaire

Exemples

Par exemple, une instruction en norme Intel :

 mov eax, 0FFh

Donnera en norme AT&T

 movl $0xFF, %eax

L'équivalent en AT&T de

 mov byte ptr [ebx], 0FFh

Est

 movb $0xFF, (%ebx)

Source

Voir aussi

Articles connexes

Ce document provient de « AT%26T (assembleur) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article At&t (assembleur) de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • AT&T (Assembleur) — AT T (assembleur) AT T est le nom donné à une forme de codage en assembleur pour l architecture x86. Cette forme de codage est apparue avec les premiers UNIX[réf. nécessaire] (AT T est la société à l origine d UNIX). Cette forme est surtout… …   Wikipédia en Français

  • AT&T (assembleur) — AT T (assembleur) AT T est le nom donné à une forme de codage en assembleur pour l architecture x86. Cette forme de codage est apparue avec les premiers UNIX[réf. nécessaire] (AT T est la société à l origine d UNIX). Cette forme est surtout… …   Wikipédia en Français

  • AT&T (assembleur) — AT T est le nom donné à une forme de codage en assembleur pour l architecture x86. Cette forme de codage est apparue avec les premiers UNIX[réf. nécessaire] (AT T est la société à l origine d UNIX). Cette forme est surtout utilisée sous UNIX …   Wikipédia en Français

  • Assembleur (langage) — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • Assembleur — Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement assembleur par abus de… …   Wikipédia en Français

  • Langage Assembleur — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • Langage assembleur — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • Langage de programmation Assembleur — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • Langage de programmation assembleur — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • GNU Assembleur — GNU Assembler GNU Assembler (aussi appelé gas), que l on peut appeler par la commande as depuis un shell, est l assembleur du projet GNU. C est le back end par défaut de GCC. Il fait partie du paquet GNU Binary Utilities. Le premier objectif de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”