Intel プロセッサのドキュメントを読みながら、基本的なアセンブリ コードをいくつか書いています。nasm
サーバーにとas
(GAS) の両方があり、両方のアセンブラの基本的な違いを理解しています。
長い目で見れば:
- これらの構文のどれに焦点を当てるのがより良い考えですか?
- これらの構文の長所と短所は何ですか?
- どちらがより広く使用され、理解されていますか?
また、お好みを教えていただければ幸いです。
プロジェクトによって異なります。すべてのコンパイラが両方の種類の構文を許可しているわけではありません。他のプラットフォームでコードを組み立てる必要がある場合は、インテルの方がおそらく優れています。両方で数年の経験がありますが、個人的にはインテルの方が好きですが、それは小さな違いであり、私にとってはそれほど重要ではありません.
AT&T の構文には%
、マクロを使用する必要がある場合は、わずかに多く、さらに多くの があります。OTOH 私は送信元、送信先の順序を好みますが、それは個人的な好みです。他の人は、たとえば C (およびその他) の代入演算子の書き込み順序に似ているため、逆を好むかもしれません。
I INTEL 構文は のようなわいせつな表現ですDWORD PTR
が、AT&T では小さな追加l
で十分です。ニーモニックの正確なスペルは多くの場合異なります。AT&T の方がより論理的ですが、もちろんインテルの方法が標準です。Intel のアドレッシング モードは、やや読みやすくなっています。
AT&T の方がよく使われていると思います。なぜなら、他のソフトウェア プロジェクトよりもアセンブラーがはるかに頻繁に使用される組み込みプラットフォームでの Linux の遍在性のためです。インテルの構文を理解するアセンブラーはもっとありますが、それは本当ですが、gcc/gas は、アセンブラーが重要/有用である分野でより使用されていると思います。
これらの構文のどれに焦点を当てるのがより良い考えですか?
どちらでも快適に作業できます
これらの構文の長所と短所は何ですか?
私にとって: 利点: - Intel: 読み取り可能 - AT&T: より多くのプラットフォーム ('as' は多くのプラットフォームで使用できるため) /- あなたの目に
どちらがより広く使用され、理解されていますか?
AFAIK Intel構文はより広く使用されています。Intel と AT&T をサポートするアセンブラの数を確認できます。