文章目录
- 通过 C 语言调用汇编函数
- 通过汇编函数调用 C 语言
通过 C 语言调用汇编函数
// compare.S
.section .text
.globl compare_data
compare_data:
cmp x0, x1
csel x0, x0, x1, hi # 条件选择指令
ret
// main.c
extern int compare_data(int a, int b);
int main()
{
int val;
val = compare_data(5, 6);
printf("big data: %d\n", val);
}
$(CC) -o main main.c compare.S --static -g # -g 包含调试信息
通过汇编函数调用 C 语言
int compare_data(int a, int b)
{
return (a >= b) ? a : b;
}
.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
mov x1, x0
ldr x0, =print_data
bl printf
ldp x29, x30, [sp], 16
ret