天天看點

ARM64基礎2:在C語言調用ARM64彙編函數

如題,通過C語言代碼調用彙編實作的函數

1.建立兩個檔案:compare.S和main.c

compare.S

.section .text
.globl compare_data
compare_data:
        cmp x0, x1
        csel x0, x0, x1, hi //若x0>1則傳回x0, 否則傳回x1
        ret
           

main.c檔案

#include <stdio.h>

extern int compare_data(int a, int b); //extern導入compare_data函數聲明

int main()
{
        int val;

        val = compare_data(5, 6); //調用彙編函數

        printf("big data: %d\n", val);
}
           

2.編譯

aarch64-linux-gnu-gcc -o main main.c compare.S --static -g
           

3.運作

# ./main
big data: 6
           

繼續閱讀