GNU/Linux >> Linux Esercitazione >  >> Linux

Limitazioni della sintassi dell'assembly Intel rispetto ad AT&T

Non c'è davvero alcun vantaggio per l'uno rispetto all'altro. Sono d'accordo però che la sintassi Intel è molto più facile da leggere. Tieni presente che, AFAIK, tutti gli strumenti GNU hanno la possibilità di utilizzare anche la sintassi Intel.

Sembra che tu possa fare in modo che GDB utilizzi la sintassi Intel con questo:

set disassembly-flavor intel

GCC può eseguire la sintassi Intel con -masm=intel .


La sintassi primaria per GNU assembler (GAS) è AT&T. La sintassi Intel è un'aggiunta relativamente nuova. L'assembly x86 nel kernel Linux è nella sintassi AT&T. Nel mondo Linux, è la sintassi comune. Nel mondo MS, la sintassi Intel è più comune.

Personalmente, odio la sintassi AT&T . Ci sono molti assemblatori gratuiti (NASM, YASM) insieme a GAS che supportano anche la sintassi Intel, quindi non ci saranno problemi con la sintassi Intel in Linux.

Oltre a ciò, è solo una differenza sintattica. Il risultato di entrambi sarà lo stesso codice macchina x86.


Non c'è davvero alcun vantaggio per l'uno rispetto all'altro. Non sono d'accordo però sul fatto che la sintassi Intel sia molto più facile da leggere, perché personalmente odio la sintassi Intel . Tieni presente che, AFAIK, tutti gli strumenti GNU hanno la possibilità di utilizzare anche la sintassi 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]

...e diventa più complicato con istruzioni più complesse

'nuff ha detto.

PS:Questa risposta esiste principalmente per evidenziare (IMHO) i punti deboli in alcune altre risposte, che in realtà non sono risposte, ma opinioni. E ovviamente questa risposta in realtà è solo la mia modesta opinione.

PPS:Non odio la sintassi Intel, semplicemente non mi interessa.


Linux
  1. Come visualizzare l'evidenziazione della sintassi su un file?

  2. Sintassi del file di configurazione Loggedfs?

  3. Meno comandi e evidenziazione della sintassi?

  4. Apri Cl in Intel?

  5. IDE C++/Assembly su Linux

Personalizza un Intel NUC con Linux

Sintassi ed esempi dell'istruzione Bash case

Bash If Else Sintassi con esempi

Abilita l'evidenziazione della sintassi in Vim

Sintassi corretta per il comando id -r

sintassi di ls --hide=e ls --ignore=