如题,演示汇编程调用 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
正文完
看不懂