GNU/Linux >> Tutoriels Linux >  >> Linux

Limitations de la syntaxe d'assemblage Intel par rapport à AT&T

Il n'y a vraiment aucun avantage à l'un par rapport à l'autre. Je suis d'accord cependant que la syntaxe Intel est beaucoup plus facile à lire. Gardez à l'esprit que, autant que je sache, tous les outils GNU ont également la possibilité d'utiliser la syntaxe Intel.

Il semble que vous puissiez faire en sorte que GDB utilise la syntaxe Intel avec ceci :

set disassembly-flavor intel

GCC peut faire la syntaxe Intel avec -masm=intel .


La syntaxe principale de l'assembleur GNU (GAS) est AT&T. La syntaxe Intel est un ajout relativement nouveau. L'assemblage x86 dans le noyau Linux est dans la syntaxe AT&T. Dans le monde Linux, c'est la syntaxe courante. Dans le monde MS, la syntaxe Intel est plus courante.

Personnellement, je déteste la syntaxe AT&T . Il existe de nombreux assembleurs gratuits (NASM, YASM) ainsi que GAS qui prennent également en charge la syntaxe Intel, il n'y aura donc aucun problème à utiliser la syntaxe Intel sous Linux.

Au-delà, c'est juste une différence syntaxique. Le résultat des deux sera le même code machine x86.


Il n'y a vraiment aucun avantage à l'un par rapport à l'autre. Je ne suis pas d'accord avec le fait que la syntaxe Intel est beaucoup plus facile à lire, car personnellement je déteste la syntaxe Intel . Gardez à l'esprit que, autant que je sache, tous les outils GNU ont également la possibilité d'utiliser la syntaxe Intel.

at&t noprefix                   intel
mov eax, -4(ebp,edx,4)          mov DWORD PTR[-4 +ebp +edx *4], eax
mov eax, -4(ebp)                mov DWORD PTR[-4 +ebp], eax
mov edx, (ecx)                  mov DWORD PTR[ecx], edx
lea (   ,eax,4), eax            lea eax, DWORD PTR[8 + eax*4]
lea (eax,eax,2), eax            lea eax, DWORD PTR[eax*2+eax]

...et ça se complique avec des instructions plus complexes

'nuff a dit.

PS:Cette réponse existe principalement pour mettre en évidence (IMHO) les faiblesses de certaines autres réponses, qui ne sont en fait pas des réponses, mais des opinions. Et bien sûr cette réponse n'est en réalité que mon humble avis.

PPS :Je ne déteste pas la syntaxe Intel, je m'en fiche.


Linux
  1. Vérification de la syntaxe PHP.

  2. Comment vérifier la syntaxe sudoers

  3. Syntaxe du fichier de configuration Loggedfs ?

  4. Ouvrir Cl dans Intel ?

  5. Lecture d'un fichier en assembleur

Personnalisez un Intel NUC avec Linux

Syntaxe de l'instruction bash case et exemples

Syntaxe Bash If Else avec exemples

Activer la coloration syntaxique dans Vim

Comment imprimer un numéro en assembleur NASM ?

Syntaxe du jour de la semaine Crontab