実際には、一方が他方より優れているということはありません。 Intel 構文がかなりであることには同意しますが、 読みやすくなります。私の知る限り、すべての GNU ツールには Intel 構文を使用するオプションもあります。
これにより、GDB に Intel 構文を使用させることができるようです:
set disassembly-flavor intel
GCC は -masm=intel
で Intel 構文を実行できます .
GNU アセンブラー (GAS) の主要な構文は AT&T です。 Intel 構文は比較的新しく追加されたものです。 Linux カーネルの x86 アセンブリは AT&T 構文です。 Linux の世界では、これが一般的な構文です。 MS の世界では、Intel 構文がより一般的です。
個人的には、AT&T 構文が嫌いです . Intel 構文をサポートする GAS と一緒に無料のアセンブラ (NASM、YASM) もたくさんあるので、Linux で Intel 構文を実行しても問題はありません。
それを超えると、それは単なる構文の違いです。両方の結果は同じ x86 マシン コードになります。
実際には、一方が他方より優れているということはありません。個人的にはインテルの構文が嫌いなので、インテルの構文の方がはるかに読みやすいという意見には反対です。 .私の知る限り、すべての GNU ツールには 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]
...そして、より複雑な命令ではさらに複雑になります
PS:この回答は主に、実際には回答ではなく意見である他の回答の弱点を強調する(IMHO)という理由で存在します。そしてもちろん、実際のこの答えは私の謙虚な意見にすぎません。
PPS:私は Intel 構文が嫌いではありません。気にしないだけです。