arm的assembler 和 c 混合调用

引用
1.wanchengbuyi的一篇文章
2.http://blog.vckbase.com/arong/archive/2004/06/09/409.aspx
3 http://www.ddvip.net/program/masm/01.htm

一调用规则
c call
参数传递从右到左,调用者恢复堆栈
pascal 与 c 相反
stdcall 是 c与pascal的混合

在arm中需对参数个数是否固定做区分。
值得注意的是arm积存器的分配。
r0~r3是用来传递参数,不用保护
r4~r11函数局部变量使用需要保护,所以反汇编会经常看到
stmdb sp!,{r4,lr}....
从上面这句指令也可以看出是堆栈是满递减操作

posted on 2004-07-02 16:46  embed  阅读(624)  评论(0编辑  收藏  举报

导航