gzyueqian
13352868059

嵌入式培训课程安排 汇编语言程序调用C语言程序

更新时间: 2019-03-31 14:22:02来源: 嵌入式培训浏览量:5634

  学习嵌入式开发,汇编语言程序如何调用C语言程序的呢?粤嵌嵌入式培训课程是这样介绍。

  为了保证程序调用时参数的正确传递,汇编语言程序的设计要遵守ATPCS。在C语言程序中,不需要使用任何关键字来声明将被汇编语言调用的C语言程序,但是在汇编语言程序调用该C语言程序之前,需要在汇编语言程序中使用IMPORT伪操作声明来声明该C语言程序。在汇编语言程序中通过BL指令来调用子程序。在示例中,汇编程序strcopy完成字符串赋值功能,C语言程序调用strcopy完成字符串的复制工作。



  示例:汇编语言程序调用C语言程序

  int g(int a,int b,int c,int d,int e)

  {

  return a+b+c+d+e;

  }

  汇编语言程序调用C语言程序g()计算5个整数i,2xi,3xi,4xi,5xi的和。

  汇编语言源程序:

  EXPORT f

  AREA f,CODE,READONLY

  IMPORT  g               ;在R0中

  STR     LR,[SP,#-4]!    ;预先保存LR

  ADD     R1,R0,R0        ;计算2xi(第2个参数)

  ADD     R2,R1,R0        ;计算3xi(第3个参数)

  ADD     R1,R0,R0        ;计算5xi(第5个参数)

  STR     R3,[SP,#-4]!    ;将5个参数压入堆栈

  ADD     R3,R1,R1        ;计算4xi(第4个参数)

  BL      g               ;调用C语言程序g()

  ADD     SP,SP,#4        ;调整数数据栈指针,准备返回

  LDR     PC,[SP],#4      ;从子程序返回

  END

  Linux内核分析

  Linux的源代码具有开放性,其内核灰机了无数编程人员的编程思想,吸引着一批批的开发者去研究它。深刻领悟Linux内核的编程思想,将是学习嵌入式Linux系统编程的基础。嵌入式培训课程只有构造出更加精简、高效的嵌入式Linux内核,才可编写出更高质量的驱动程序与应用程序。

  学习嵌入式培训课程,粤嵌提供嵌入式学习平台,通过嵌入式开发的学习,让你不断进步。


免费预约试听课