c - -masm 中的第一个 m 是什么意思?

标签 c assembly gcc

我是 gcc 的新手,只是一个关于 gcc -masm 的问题,我知道通过使用 masm 我们可以从 ATT(默认)中选择(反)汇编方言到英特尔。而 -masm 是一个 GNU 选项,与微软的宏汇编程序 (masm) 无关。
但是,-masm 中的第一个 m 是什么?意思?

最佳答案

gcc 有 so many options如果程序员有机会记住他们需要的那些,就需要有一种方法将它们分成几组。这是通过使用选项的第一个字母来表示它所属的组,其余部分来描述特定选项本身来完成的。-m介绍了 achine 选项:针对特定机器编译时特定于 gcc 行为的选项。您的 -masm= 仅对 x86 有意义,因为它在 x86 汇编方言之间进行选择。还有许多其他特定于 x86 的选项( -march=pentium 生成在 Pentium 上运行最佳的代码,-mno-red-zone 更改“红色区域”调用约定等)以及其他架构的更多选项(ARM 上的 -mthumb 到选择它具有的特定指令模式)。
其他一些值得了解的群体:

  • -W请求选项 w 关于代码中各种可能问题的警告:-Wuninitialized例如,获取有关未初始化变量的警告。
    (异常(exception):-Wp, -Wa, -Wl 不是用于警告,而是用于分别将选项“传递”给预处理器/汇编器/链接器。)
  • -f设置 f 以某种与机器无关的方式影响解析、优化和代码生成过程的滞后:-fstrength-reduce请求称为“强度降低”的特定优化,-fpic用于位置无关代码等。
  • -O用于控制 的总量或优先级的选项Ø 优化:-O0无,-O3拍品,-Os优化大小等。
  • -g用于控制 debu 的选项 要包含在生成的目标文件中的信息。
  • -d用于编译器使用的选项 d 开发人员,这可能会转储有关编译过程的信息。
  • 关于c - -masm 中的第一个 m 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62766235/

    相关文章:

    CVE-2017-5753 边界检查绕过,又名每个人都在谈论的巨大错误

    c - 如何在 Code::blocks 中将 Arduino 草图转换为 C 文件?

    assembly - Zynq 7000 : Minimum asm code to init cpu1 from cpu0

    c - 为什么GCC初始化为0时不分配静态变量

    C++ : convert symbols to code line numbers programmatically

    自定义结构和自定义函数(将用户输入日期添加 7 天)

    c - 如果 int (*p_arr)[10] 被定义为指向大小为 10 的数组的指针,那么为什么编译器在这种情况下会显示警告?

    assembly - 如何知道某个数字在ARM中可以表示为32位立即数?

    c++ - eclipse "crossGCC"

    java - 如何在 OS X Lion 上安装 JPype 以与 Neo4j 一起使用?