NASM(英特尔)与AT& T语法:有什么优势?

时间:2011-12-18 02:31:21

标签: assembly nasm att

我正在阅读英特尔处理器文档并同时编写一些基本的汇编代码。我的服务器上有nasmas(GAS),我理解两个汇编程序的基本区别。

从长远来看:

  • 关注哪种语法更好?
  • 这些语法有哪些优点和缺点?
  • 哪一个被更广泛地使用和理解?

我也很感激您可以与我分享的任何偏好。

2 个答案:

答案 0 :(得分:5)

  • 关注哪种语法更好?

取决于您的项目。并非每个编译器都允许这两种语法。如果你需要在其他平台上组装代码,那么英特尔可能会更好,即使经过几年的经验,我个人更喜欢英特尔,但这只是一个小小的差异,对我来说并不重要。

  • 这些语法有哪些优点和缺点?

在AT& T语法中,如果您需要使用宏,则会有更多%,甚至更多。 OTOH我更喜欢源,目的地排序,但这是个人品味,其他人可能更喜欢它,因为它类似于C中的赋值运算符的写入顺序(以及更多)。

我的INTEL语法是像DWORD PTR这样的猥亵,其中在AT& T中,一个小的附加l就足够了。在许多情况下,助记符的确切拼写不同,我发现AT& T更合乎逻辑,当然英特尔方式是标准。英特尔的寻址模式更具可读性。

  • 哪一个被更广泛地使用和理解?

我相信AT& T更常用,因为Linux在嵌入式平台上无处不在,其中汇编程序在其他软件项目中更常用。有更多的汇编程序可以理解Intels语法,这很多都是正确的,但我相信gcc / gas更多地用于汇编程序很重要/有用的领域。

答案 1 :(得分:4)

  

关注哪种语法更好?

无论您使用哪种方式都很舒服

  

这些语法有哪些优点和缺点?

对我来说: 好处: - 英特尔:可读 - AT& T:更多平台(因为'as'可在许多平台上使用) 缺点: - 英特尔:许多汇编程序,但很少有常见的相似之处,许多功能都是特定于汇编程序的 - AT& T:它会为你的眼睛增加+/-

  

哪一个被更广泛地使用和理解?

AFAIK英特尔语法使用得更广泛。您可以查看支持Intel vs AT& T的汇编程序数量。