如题,演示汇编程调用C函数方法
1.创建两个文件
compare.c
int compare_data(int a, int b)
{
return (a >= b) ? a : b;
}
main.S文件
.section .data
.align 3
print_data:
.string "big data: %d\n"
.section .text
.globl main
main:
stp x29, x30, [sp, -16]! //保存栈帧寄存器,返回寄存器
mov x0, #6
mov x1, #5
bl compare_data //调用C函数
mov x1, x0
ldr x0, =print_data
bl printf
ldp x29, x30, [sp], 16 //恢复栈帧寄存器,返回寄存器
ret
2.编译
aarch64-linux-gnu-gcc -o main main.S compare.c --static -g
3.运行
# ./main
big data: 6