GNU/Linux >> Znalost Linux >  >> Linux

Omezení syntaxe Intel Assembly ve srovnání s AT&T

Ve skutečnosti neexistuje žádná výhoda jednoho nad druhým. Souhlasím však s tím, že syntaxe Intel je hodně snadněji čitelné. Mějte na paměti, že AFAIK, všechny nástroje GNU mají také možnost používat syntaxi Intel.

Vypadá to, že můžete přimět GDB používat syntaxi Intel pomocí tohoto:

set disassembly-flavor intel

GCC umí syntaxi Intel s -masm=intel .


Primární syntaxe pro GNU assembler (GAS) je AT&T. Syntaxe Intelu je relativně novým přírůstkem. Sestavení x86 v linuxovém jádře je v syntaxi AT&T. Ve světě Linuxu je to běžná syntaxe. Ve světě MS je syntaxe Intel běžnější.

Osobně nesnáším syntaxi AT&T . Existuje spousta bezplatných assemblerů (NASM, YASM) spolu s GAS, které také podporují syntaxi Intel, takže při syntaxi Intelu v Linuxu nebudou žádné problémy.

Kromě toho je to jen syntaktický rozdíl. Výsledkem obou bude stejný strojový kód x86.


Ve skutečnosti neexistuje žádná výhoda jednoho nad druhým. Nesouhlasím však s tím, že syntaxe Intelu je mnohem snáze čitelná, protože osobně nesnáším syntaxi Intel . Mějte na paměti, že AFAIK, všechny nástroje GNU mají také možnost používat syntaxi 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]

...a se složitějšími instrukcemi je to složitější

'nuff řekl.

PS:Tato odpověď existuje hlavně z důvodu zvýraznění (IMHO) slabin v některých dalších odpovědích, které ve skutečnosti nejsou odpověďmi, ale názory. A samozřejmě tato odpověď je ve skutečnosti pouze můj skromný názor.

PPS:Nenávidím syntaxi Intelu, prostě je mi to jedno.


Linux
  1. Ověření syntaxe PHP.

  2. Jak zkontrolovat syntaxi sudoers

  3. Méně zvýraznění příkazů a syntaxe?

  1. Otevřít Cl v Intelu?

  2. Čtení ze souboru v sestavě

  3. Syntaxe Crontab Day of the Week

  1. Jak zobrazit zvýraznění syntaxe v souboru?

  2. Syntaxe konfiguračního souboru Loggedfs?

  3. Zabezpečení LXC ve srovnání s OpenVZ