GNU as:获取节开始和结束地址



我正在移植一个使用sect()sectend()函数的MIPS汇编程序(非MIPSPro兼容语法)。看起来它们返回该部分的开始和结束地址。似乎 GNU AS 文档不支持任何类似的东西 - 任何想法如何用 GAS 语法对此进行编码?

以下是一些示例。

        la  t0,sect(.bss)
        la  t1,sectend(.bss)
    @clear:
        sw  zero,0(t0)
        addiu   t0,t0,4
        sltu    at,t0,t1
        bne at,zero,@clear
        nop
....
__text  dw  sect(.text)
__textlen   dw  sectend(.text)-sect(.text)

如果您使用的是运行 ELF 可执行文件的系统,您可能会在这里和这里找到答案。

我相信您将信息(用可以在 asm 中作为变量读取的指示器包装部分)放在链接器脚本中。 这就是我看到 .data 部分从闪存复制到 ram 的方式,而 .bss 被归零......(使用 GNU 工具)。

最新更新