assembly - "GCC -S"的汇编输出: why does .全局定位在.data之前?

标签 assembly gnu-assembler

    .file   "test.c"
    .globl  a1
    .data
    .align 4
    .type   a1, @object
    .size   a1, 4
a1:
    .long   111
    .globl  a2
    .align 4
    .type   a2, @object
    .size   a2, 8
a2:
    .long   1
    .long   2
    .text
    .globl  main
    .type   main, @function
main:
    ...
    ...

从上下文来看,我认为应该是:

    .data
    .globl  a1

为什么 GCC 将 .data 放在 .globl 后面?

最佳答案

Why does GCC put .data behind .globl ?

没关系。 .globl 指令仅告诉汇编器该符号应该是全局的(对链接器可见)。重要的是标签本身(即行 a1:)放置在 .data 之后。

关于assembly - "GCC -S"的汇编输出: why does .全局定位在.data之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959865/

相关文章:

c - 如何将包含 32 位 asm 的 C 程序编译成 .o 文件?

程序集 - 权限级别

regex - 正则表达式和汇编

assembly - 将值加载到 RISC-V 中的寄存器

c - 不确定数据部分反汇编中的一些说明

gcc - 使用gcc和as编译汇编有什么区别

c - 循环索引比较未按预期组装

performance - go 中 ASM 函数调用的开销

GNU 汇编器预处理器定义