ARM汇编单文件多函数编写格式合规性咨询
ARM汇编多函数编写格式规范答疑
两种写法的合规性确认
多个函数名放同一条
.global指令:
这种写法完全符合ARM汇编规范,是GNU汇编器(gas)支持的标准用法。用逗号分隔多个全局符号,和分开写多条.global指令的效果完全一致,编译后所有函数名都会被正确导出到符号表,供外部调用。比如:.global add, sub, mul和以下写法等价:
.global add .global sub .global mul单个
.section .text指令:
这是规范且推荐的写法。.section .text的作用是指定后续代码存入可执行文本段,只要后续没有切换到其他段(如.data/.bss),所有函数代码都会默认归属于.text段。重复书写.section .text虽然能编译,但属于冗余操作,没必要。
标准多函数文件示例
以下是完全符合作业要求的代码格式:
.section .text .global add, sub add: ADD r0, r0, r1 @ 实现r0 = r0 + r1 BX lr @ 返回 sub: SUB r0, r0, r1 @ 实现r0 = r0 - r1 BX lr @ 返回
这个结构满足“开头包含.global和.section .text指令”的要求,多函数定义清晰,编译运行都无问题,也契合ARM汇编的通用编码规范。
内容的提问来源于stack exchange,提问作者adroc57
相关产品推荐
相关产品推荐

