arm 汇编调用c函数与c函数调用arm汇编
来源:互联网 发布:师洋淘宝一年赚 编辑:程序博客网 时间:2024/06/18 12:49
1、汇编调用c函数:
汇编代码:
add_s.s
import addarea codeseg,code,readonlyentrymov r0,#1mov r1,#2mov r2,#3mov r3,#4mov r4,#5stmfd r13!,{r4}/*由于arm只有r0-r3是传参寄存器,在这里要传递5个参数,所以要用到栈,将r4入栈*/bl add/*调用add.c*/ nopnopend
c函数代码:
add_c.c
extern int add(int x,int y,int z,int k,int m);int add(int x,int y,int z,int k,int m){return(x+y+z+k+m);}
2、c函数调用汇编:
c函数代码:
main_c.c
#include <stdio.h>extern int addfive(int,int,int,int,int,int);int main(void){int a=1,b=2,c=3,d=4,e=5,f=6;printf("a=%d\n",addfive(a,b,c,d,e,f));return 0;}
汇编代码:
main_s.s
area codeseg,code,readonlyexport addaddmov r5,#0add r5,r5,r0/*将r0+r5放入r5,下同*/add r5,r5,r1add r5,r5,r2add r5,r5,r3ldmia sp!,{r4}/*由于arm只有r0-r3是传参寄存器,在这里要传递5个参数,所以要用到栈,这里是从栈中取出一个数放到r4中*/add r5,r5,r4mov r0,r5/*函数返回时要返回r0中的值,所以将计算的和再放回r0*/mov pc,lr/*lr中存放的是在函数调用之前下一步要执行的指令,这里将其放回到pc中,下一步跳回到c函数中*/nopnopend
- arm 汇编调用c函数与c函数调用arm汇编
- ARM汇编调用函数
- ARM汇编与C语言混合编程之汇编调用C函数
- Linux ARM C语言中调用汇编函数
- C调用汇编函数
- ARM汇编程序---通过ARM汇编调用C语言函数实现累加
- ARM汇编程序---通过ARM汇编调用C语言函数实现累加
- arm汇编函数调用参数传递规则
- ARM中汇编调用c语言
- ARM基础:汇编调用C程序
- ARM基础:C程序调用汇编
- ARM汇编 C语言 C++ 相互调用
- c调用汇编函数(1)
- c程序调用汇编函数
- 汇编函数调用c程序
- arm蛋疼汇编 part8 -- 汇编 c 谁调用谁?
- ARM汇编冒泡排序之c语言调用汇编
- ARM汇编冒泡排序之汇编调用c语言
- 抽象和接口
- UML模型图
- cocos2dx用lua监听android的返回事件
- 【Windows】windows下svn强制写日志hook脚本增强版(空格过滤)
- 特殊的三个数
- arm 汇编调用c函数与c函数调用arm汇编
- wordpress 调试环境建立【Xampp + Zend studio + xdebug(php5.4 thread safe) 】
- 嵌入式Linux启动过程中的问题积累
- PHP中__construct(), __destory(), __get(), __set(), __call(), __toString(), __clo
- java程序中调用linux命令
- 实现收藏本网站的功能
- 出错的程序
- 聊聊可空类型
- Eclipse相关文章