You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARMv7平台C内联汇编递归函数执行时触发段错误的问题求助

ARMv7平台C内联汇编递归函数执行时触发段错误的问题求助

我刚接触汇编没多久,最近在ARMv7平台上用Cxxdroid编译器写了一段带内联汇编的递归求和函数,结果运行的时候直接触发了段错误,折腾了好半天也没搞定,来求助各位大佬!

先贴一下我的代码:

#include <stdio.h>

int sum_with_rec(int k) {
    int res = 0;
    __asm (
        "sum_with_rec_:\n"
        "CMP %[input_i], #0\n"
        "BEQ endrec\n"
        "rec:\n"
        "ADD %[result], %[input_i]\n"
        "PUSH {%[result]}\n"
        "SUB %[input_i], #1\n"
        "BL sum_with_rec_\n"
        "endrec:\n"
        :[result] "+r" (res)
        :[input_i] "r" (k)
    );
    return res;
}

int main(void) {
    int d = 10;
    int e = 0;
    e = sum_with_rec(d);
    printf("Result of %d = %d\n", d, e);
    return 0;
}

补充一下环境信息:目标架构是ARMv7,用的编译器是Cxxdroid,普通的内联汇编代码编译运行都没问题,唯独在汇编里尝试递归的时候就会触发段错误。有没有大佬能帮我分析下问题出在哪?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 09:28:09