如題,示範彙程式設計調用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