和C调用汇编一致,前四个参数用R0-R3传递,后面的用堆栈传递
测试这个程序:
//******************************************************
//main.C
extern int test(int, int, int);
int n;
int main(void)
{
n = test(2,4,6);
while(1);
}
int add(int a, int b, int c)
{
return a+b+c;
}
//******************************************************
;****************************************************
;test.S
IMPORT add ;引进add
EXPORT test ;供出test
AREA test,CODE,READONLY
CODE32
STR LR,[SP],#-4 ;保存LR:入栈
BL add ;调用C程序
LDR LR,[SP,#4]! ;LR出栈
MOV PC,LR ;返回main
END
;***************************************************
过程说明:main调用n = test(2,4,6),使2、4、6分别通过R0、R1、R2传递给汇编函数test,然后test调用C程序add,R0、R1、R2分别传给a、b、c,然后求和结果用R0返回test,test又将R0返回main函数,所以最后 n = 12;
如图:
注意汇编程序中IMPORT和EXPORT的用法:
IMPORT add:进口,指add在外部文件中,当前文件要调用EXPORT test:出口,指test在当前文件中,可以给外部文件调用同样在C文件中,如果要调用外部文件,使用extern关键字申明函数,如:extern int test(int, int, int);
这些关键字是必须的,如果在没有使用这些关键字的情况下,调用外部函数,编译器要报错的。
上一篇:malloc函数及用法
下一篇:S3C2440中断过程详解(ADS,TQ2440)
推荐阅读
史海拾趣
1、在自己得到了别人的帮助以后,一定在最后总结一下,请不要一声不吭的走人。 总结的内容包括:1、问题到底出在哪里。2、通过第几楼的方法解决的。 这种总结,对其他人很有用,通过看总结他们可以知道第几楼的方法是对的。 在自己的求助帖最后 ...… 查看全部问答∨ |
|
pb 5.0 中自带的.net compact framework是1.0的。vs2005用的是2.0的。 因此我想生成印象时将2.0的.net framework包含进去。 于是安装了WinCEPB50-071231-Product-Update-Rollup-Armv4I.msi这个补丁。 在**catalog items中的Applications and Ser ...… 查看全部问答∨ |
|
1. 请问是否可行? 2. 需要学习哪些方面的东西? 我没有做过开发,但是必须实现这个功能。只有最基本的编程能力。所用的芯片是TI的CC2531.芯片自带USB controller,例子程序里有基本的USB library,但是无法实现向PC读写文件。 谢谢。… 查看全部问答∨ |
|
设计资源 培训 开发板 精华推荐
- 新突破!超高速内存,为英特尔至强6性能核处理器加速
- 将vRAN站点整合至单服务器,助力运营商降低总体拥有成本
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 芯(E)币兑换Nucleo扩展板:让你的Nucleo变身成pyboard
- EEworld新春感恩回馈之ST新出道“高富帅”STM32F746G-DISCO 199元包邮
- 下载、答题赢好礼:使用Mentor的Xpedition Layout高效设计PCB
- Avnet&On semi 带你看未来,3个你必须知道的行业趋势!
- 下载泰克电源设计测试方案+图文攻略 帮助工程师解决电源效率问题。有好礼
- TI Sensor Menu 助力感应全世界——下载有礼!
- 泰克多媒体总线专题之《DDR Memory》,下载赢好礼!
- ADI有奖下载活动之15 ADI公司智能可穿戴医疗保健设备解决方案
- 工程师快乐,所以行业记者快乐!
- 了解PI最新产品,评论、下载抢楼好礼送!