中易网

ARM 汇编与C程序的混合编程(怎样实现4个以上的参数的传递)!

答案:1  悬赏:30  
解决时间 2021-01-24 08:13
ARM 汇编与C程序的混合编程(怎样实现4个以上的参数的传递)!
最佳答案
ADD proc
arg_C equ 0xC
arg_8 equ 8
arg_4 equ 4
arg_0 equ 0
MOV R12, SP
STMFD SP!, {R0-R3} ;四个参数
STMFD SP!, {R4-R10,R12,LR}
SUB SP, SP, #0x10
LDR R0, [SP,#0x34+arg_0]
LDR R1, [SP,#0x34+arg_4]
LDR R2, [SP,#0x34+arg_8]
ADD R0, R0, R1
ADD R0, R0, R2
ADD SP, SP, #0x10
LDMFD SP, {R4-R10,SP,PC}
ENDP

如果参数传递大于 4 个,那么你在 BL 的地方应使用:
....
STR R0, [SP,#0x8] ;第七个
STR R0, [SP,#0x4] ;第六个
STR R0, [SP,#0x0] ;第五个

============================================
我理解你的意思了
LDR r0,=0x1
LDR r1,=0x2
LDR r2,=0x3
BL add
改为:
LDR r0,=0x1
STR R0, [SP,#0x0]
LDR r1,=0x2
STR R1, [SP,#0x4]
LDR r2,=0x3
STR R2, [SP,#0x8]
BL ADD
你是这个意思吧?
------------
int a = R0
int b = R1
int c = R2
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国信合24小时自助银行(龙渊信用分社)怎么去
2014农机经销商网络怎么注册 求解答
丰太阳穴,有风险吗?
请问EMS国际快递寄东西到国内,过海关要几天
怎样才能去除胎记?
浙江嘉兴南如何坐大巴去乌镇
结婚前一晚都在干嘛。
直径160厘米长90米是多立方
新买的包包为什么总是瘪的?怎么能让他挺着呀
右半边脸一阵一阵的发麻和使用化妆品有关系吗
做表格是WORD好还是EXZL好,两则区别
深圳积分入户个人申报户口能直接挂申报机构的
足跟痛宁消贴一般需要贴多长时间?
一女生让我带外套给她穿,可是我不想带怎么办
北京自体脂肪丰下巴哪里靠谱?求大神解答?急
推荐资讯
洗脸神器洗脸刷效果好不好?
意读的《一滴水的旅行》全文
《《为你而来》迷路的狼》最新txt全集下载
为什么意大利,德国同日本一样为二战战败国,
为什么会得干眼症
【题文】老子说:“知人者智,自知者明”。其
高度近视是选择全飞秒还是icl,有了解过的么
中央银行2007年11月29日港币兑换人民币的汇率
谢大脚真名叫啥
眼睛碰伤角膜移植多少钱
妙洁拖把如何换拖把头,有关旋转拖把哪个品牌
论述西周的分封制和宗法制。
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?