美文网首页
ARM汇编语言与C语言混合编程(part1)

ARM汇编语言与C语言混合编程(part1)

作者: HurryChen | 来源:发表于2018-10-12 13:46 被阅读0次

汇编语言调用C语言

题目:用汇编语言调用C语言实现21!(21的阶乘)

实验软件:ARM Developer Suite V1.2

步骤:建立两个文件,一个.s文件,一个.c文件,顺序无所谓,但要在一个project里;


文件 test.s

        AREA test,CODE,READONLY

        IMPORT CFUN             

        ENTRY

        CODE32

START

        MOV R0,#21

        BL CFUN

STOP

        B STOP

        END


文件main.c           //不用包含头文件

long long CFUN(int a){ //函数返回类型和result类型都要是long long int,注意阶乘结果很大,一个寄存器放不下。

        long long result=1;

        int i=1;

        for(i;i<=a;i++)

                result=result*i;

        return result;

}   

---------------------

汇编调用C时,函数参数用寄存器传,默认从R0开始,大于4个的参数要用堆栈指针传;C函数返回值默认放在R0中,运行后查看寄存器结果即可(此题结果过大,一个放不下,R0放阶乘结果的低位,R1放结果的高位)


运行结果:

此文章本人原创,如有问题底部留言,如有转载请标明出处。                     

--HurryChen

                                                                      Happy   Coding!

                                                                    *\( ^ v ^ )/*

相关文章

  • ARM汇编语言与C语言混合编程(part1)

    汇编语言调用C语言 题目:用汇编语言调用C语言实现21!(21的阶乘) 实验软件:ARM Developer Su...

  • 第一天笔记

    编程语言的进化 机器语言--汇编语言----高级语言 高级语言 C C++ JVAV PHP JS 等等 发展...

  • RAM学习路线03-RAM汇编语言

    1. ARM汇编程序的结构 1.1 段 ARM的汇编语言程序由段组成,段是相对独立的指令或数据单位,每个段...

  • 2016年10月17日兄弟会全栈工程师培训第一课笔记

    作者:唐嵘斐 编程语言的进化 机器语言--汇编语言--高级语言 高级语言 C、C++、java、php、js、as...

  • Thinking in Java-对象导论

    抽象过程 所有编程语言都提供抽象机制。汇编语言是对机器语言的抽象,“命令式语言”(C、BASIC等)是对汇编语言的...

  • C语言基础

    C语言初识与应用 C语言的起源 C语言是20世纪70年代由贝尔实验室开发并广为流传使用的编程语言。起初由于汇编语言...

  • C语言第一节

    1、机器码—机器语言 2、汇编语言,汇编语言和机器码是一一对应的 3、高级语言 1、C:结构化编程语言 2、C++...

  • Java技术基础

    1.1.1 编程语言 机器语言:0 1 在硬件直接执行 汇编语言:助记符 高级语言: (Java运行比C/C+...

  • 读书笔记

    编程语言总体分为机器语言、汇编语言、高级语言。 01机器语言,目标程序 高级语言分为编译类(C,C++, Delp...

  • 解释执行与编译执行

    编程语言分为低级语言和高级语言,机器语言、汇编语言是低级语言,C、C++、java、python等是高级语言。机器...

网友评论

      本文标题:ARM汇编语言与C语言混合编程(part1)

      本文链接:https://www.haomeiwen.com/subject/optgaftx.html