7

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

从长远来看:

  • 专注于这些语法中的哪一个是更好的主意?
  • 这些语法的优点和缺点是什么?
  • 哪一种被更广泛地使用和理解?

我也很感激你能与我分享的任何偏好。

4

2 回答 2

6
  • 专注于这些语法中的哪一个是更好的主意?

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

  • 这些语法的优点和缺点是什么?

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

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

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

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

于 2011-12-18T09:47:32.447 回答
4

专注于这些语法中的哪一个是更好的主意?

无论您愿意与哪个合作

这些语法的优点和缺点是什么?

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

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

AFAIK 英特尔语法被更广泛地使用。您可以查看支持 Intel 与 AT&T 的组装商数量。

于 2011-12-18T02:42:51.480 回答