Benar-benar tidak ada keuntungan untuk satu dari yang lain. Saya setuju bahwa sintaks Intel banyak lebih mudah dibaca. Perlu diingat bahwa, AFAIK, semua alat GNU juga memiliki opsi untuk menggunakan sintaks Intel.
Sepertinya Anda dapat membuat GDB menggunakan sintaks Intel dengan ini:
set disassembly-flavor intel
GCC dapat melakukan sintaks Intel dengan -masm=intel
.
Sintaks utama untuk assembler GNU (GAS) adalah AT&T. Sintaks Intel adalah tambahan yang relatif baru. perakitan x86 di kernel Linux dalam sintaks AT&T. Di dunia Linux, itu adalah sintaks yang umum. Di dunia MS, sintaks Intel lebih umum.
Secara pribadi, saya benci sintaks AT&T . Ada banyak assembler gratis (NASM, YASM) bersama dengan GAS yang juga mendukung sintaks Intel, jadi tidak akan ada masalah saat menjalankan sintaks Intel di Linux.
Di luar itu, itu hanya perbedaan sintaksis. Hasil keduanya akan menjadi kode mesin x86 yang sama.
Benar-benar tidak ada keuntungan untuk satu dari yang lain. Saya tidak setuju bahwa sintaks Intel lebih mudah dibaca, karena secara pribadi Saya benci sintaks Intel . Perlu diingat bahwa, AFAIK, semua alat GNU juga memiliki opsi untuk menggunakan sintaks 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]
...dan menjadi lebih rumit dengan instruksi yang lebih rumit
'kata nuff.
PS:Jawaban ini ada terutama karena alasan menyoroti (IMHO) kelemahan pada beberapa jawaban lain, yang sebenarnya bukan jawaban, tetapi opini. Dan tentu saja jawaban ini sebenarnya hanyalah pendapat saya yang sederhana.
PPS:Saya tidak membenci sintaks Intel, saya hanya tidak peduli.