arm中汇编如何调用c子程序?c语言又如何调用汇编子程序?

如题... 如题 展开
 我来答
oak_shield
推荐于2017-09-23 · TA获得超过201个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:188万
展开全部
汇编调用C,要按照函数调用规范来传递参数(即压栈),常用的函数调用规范有stdcall,cdecl等,cdecl是通常的缺省调用规范。如果是cdecl,清栈动作是由调用者来处理的,也就是汇编在c函数返回后要清栈。
另外汇编调用C,还要abi来处理返回值,常用的ARM abi有oabi,eabi等,涉及到返回值在哪个寄存器中。
C调用汇编,汇编除了按以上的函数调用规范和abi规范来处理参数以及返回值之外,要使用mov pc,lr来返回C,即C调用发生时,LR中有调用的返回地址
更多追问追答
追问
看不懂,能不能用代码说明一下?这样子比较一目了然
追答
这里的背景知识太多了,你如果连上面的答案都看不懂,给你代码你更看不懂,建议你去学习一下堆栈的知识
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式