首页 文章

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

提问于
浏览
6

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

长期来说:

  • 关注哪种语法更好?

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

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

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

2 回答

  • 5
    • 关注哪种语法更好?

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

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

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

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

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

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

  • 4

    关注哪种语法更好?

    无论你喜欢与谁合作

    这些语法有哪些优缺点?

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

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

    AFAIK Intel语法被更广泛地使用 . 您可以查看支持Intel vs AT&T的汇编程序数量 .

相关问题