【问题标题】:What type of assembly does gcc output with the -S flaggcc 使用 -S 标志输出什么类型的程序集
【发布时间】:2011-11-16 00:44:00
【问题描述】:

帖子的标题是问题。我可以看到它不是 NASM 汇编器的汇编语言。 gcc 的汇编输出是针对什么汇编语言的?

【问题讨论】:

标签: gcc assembly nasm


【解决方案1】:

它是您正在编译的机器的 AT&T 语法,而 NASM 使用 Intel 语法。

-S -masm=intel 将修复它:How do you use gcc to generate assembly code in Intel syntax?

【讨论】:

    【解决方案2】:

    主要存在两种汇编风格。

    • 英特尔语法
    • AT&T (GAS) 语法

    GCC 通常使用 AT&T (GAS) 语法输出汇编,而 NASM 使用 Intel 语法。

    在某些平台上,您可以使用 Intel 语法生成程序集:

    -masm=intel
    

    不幸的是,并非所有地方都支持此功能。 例如,如果使用 OS X,则仅支持 AT&T 语法。

    【讨论】:

    • @ninjalj 对,但是 NASM 语法实际上是基于 Intel 的。这是一种“简化”的英特尔语法。
    • 您在回答中没有准确地说出来,这会使您的回答产生误导。见stackoverflow.com/questions/8406188/…
    • 谢谢...您是否真的在尝试查看 StackOverflow 上所有与 NASM 相关的问题来宣传您自己的答案?
    • 我实际上想知道 OP 从哪里得到 NASM 使用 Intel 语法的想法,所以我查看了他的问题,并找到了答案。
    • 其实没问题 :) 很好地向他解释了这一点。
    【解决方案3】:

    它是 at&t 汇编程序。 Unix 世界的标准。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 2013-02-23
      相关资源
      最近更新 更多