0
点赞
收藏
分享

微信扫一扫

汇编语言练习 —— 汇编语言和 C 函数相互调用


文章目录

  • ​​通过 C 语言调用汇编函数​​
  • ​​通过汇编函数调用 C 语言​​

通过 C 语言调用汇编函数

// compare.S
.section .text
.globl compare_data
compare_data:
cmp x0, x1
csel x0, x0, x1, hi # 条件选择指令
ret
// main.c
#include <stdio.h>

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


举报

相关推荐

0 条评论