我正在移植一个使用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 工具)。