arm 汇编调用C

arm64 汇编调用C函数

main.s

c 复制代码
.section .text
.globl main
main:
        stp     x29, x30, [sp, -16]!  //store fp x29 lr x30

        mov x0, #0
        mov x1, #1
        bl add
		mov x1, x0   // x0 return 
        ldp  x29, x30, [sp], 16  //restore fp lr
        ret

add.c

c 复制代码
#include <stdio.h>
int add(int a, int b)
{
    printf("a=%d,b=%d\n",a,b);
    return a+b;
}

编译

c 复制代码
gcc -g main.s add.c

调试

c 复制代码
gdb a.out
b main
相关推荐
2601_955518189 小时前
C语言标准演化史:从K&R到GNU,谁才是正统?
c语言·gnu·标准演化·ansic·性能与可移植性
程序员zgh10 小时前
C++ 拷贝赋值运算符 详解
c语言·开发语言·c++
小婷一直在努力12 小时前
自定义类型:联合和枚举
c语言·联合和枚举
夕阳23012 小时前
做耳机开发,需要掌握哪些 C 语言知识?
c语言·开发语言·#蓝牙开发·#蓝牙技术
weixin_4568083813 小时前
【沁恒蓝牙开发】BLE常见错误码与解析
c语言·单片机·嵌入式硬件
HJX_072413 小时前
嵌入式软件C语言八股文复习笔记5——编译、链接与底层硬核机制
c语言·开发语言·笔记
LCMICRO-1331084774614 小时前
国产长芯微LPS7118完全pin-pin替代ADP7118,是一款采用 CMOS 技术设计的低噪声、高 PSRR、快速瞬态响应、低压差线性稳压器
arm开发·单片机·嵌入式硬件·fpga开发·硬件工程·线性稳压器·adp7118
LCMICRO-1331084774614 小时前
国产长芯微LM3042完全P2P替代LT3042,是一款高性能低压差线性稳压器
arm开发·单片机·嵌入式硬件·fpga开发·硬件工程·线性稳压器·lt3042
haolin123.14 小时前
类和对象(下)
c语言·开发语言·c++
(Charon)16 小时前
【C++】手写 MySQL 连接池(三):异步任务队列与工作线程
c语言·c++