ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ARM64基础2:在汇编中调用C语言函数

2021-08-02 16:01:26  阅读:231  来源: 互联网

标签:汇编 compare int mov C语言 ARM64 寄存器 main data


如题,演示汇编程调用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

标签:汇编,compare,int,mov,C语言,ARM64,寄存器,main,data
来源: https://blog.csdn.net/luteresa/article/details/119326634

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有