C和汇编之间的函数调用.docVIP

  • 6
  • 0
  • 约2.05千字
  • 约 3页
  • 2018-05-05 发布于河南
  • 举报
C和汇编之间的函数调用

C和汇编之间的函数调用 ARM工程中,C程序调用汇编函数和汇编程序调用C函数时经常的事情,遵守ARM-Thumb过程调用标准ATPCS(ARM-Thumb Procedure Call Standard)。 ATPCS标准——ARM编译器使用的函数调用规则(详见下面) (温故知新)C语言程序中的调用 int main() { printf(1234+5678=%d\n,sum(1234,5678)); return 0; } 请编写sum函数,实现两个数的相加。 int sum(int x,int y) { int s; s=x+y; return s } C程序调用汇编程序函数 要点: 在汇编语言中,用该函数名作为汇编代码段的标识,定义函数代码,最后用MOV PC,LR返回 在汇编语言中用EXPORT导出函数名 在C语言中用extern关键词声明函数原型。 函数调用时参数传递规则:寄存器组中的{R0-R3}作为参数传递和结果返回寄存器,如果参数数目超过4个,则使用堆栈进行传递。 ;工程exp10_1_2 ;汇编函数文件strcopy.s ;把R1指向的数据块复制到R0指向的存储块。 AREA StrCopy,CODE,READONLY EXPORT strcopy strcopy LDRB R2,[R1],#1 STRB R2,[R0],#1 CMP R2,#0 BNE str

文档评论(0)

1亿VIP精品文档

相关文档