为什么任何人在任何情况下都不应该出于任何原因使用 AT&T 语法?

主要观点:AT&T 语法有害且糟糕,应避免使用,Intel 语法更优,AT&T 语法存在诸多问题如破坏代码、操作数顺序错误、符号干扰、寻址模式复杂、缺乏通用性等,且 Intel 语法更普及。
关键信息:

  • AT&T 语法的问题:如 movl 28, %eax 形式易混淆,操作数顺序与 Intel 相反,符号 % 和 $ 易造成干扰,后缀混淆操作等,寻址模式复杂。
  • Intel 语法的优势:更符合高级语言习惯,能明确数据约束,更易识别操作类型等,且被广泛使用,各种工具和编译器都倾向于它。
    重要细节:
  • CRAY-1 的指令编码及特殊情况,如 030514 等的含义。
  • 不同架构如 ARM 也存在类似问题。
  • 相关文档如 Intel 和 AMD 的手册、Agner Fog 的资料等。
  • 各种工具如 GCC、Clang、objdump、gdb 等使用 Intel 语法的设置。
阅读 7
0 条评论