共2条
1/1 1 跳转至页
红书中汇编调用C程序,一处不懂
问
《ARM微控制器基础和实践》中的汇编调用C程序,P116:
EXPORT CALLSUM5
AREA EXAMPLE,CODE,READONLY
IMPORT sum5
CALLSUM5
STMFD SP!,{LR}
ADD R1,R0,R0
ADD R2,R2,R0
ADD R3,R1,R2
STR R3,[SP,#-4]!
ADD R3,R1,R1
BL sum5
;ADD SP,SP,#4
LDMFD SP!,{PC}
END
不知 ADD R1,R0,R0
ADD R2,R2,R0
ADD R3,R1,R2
STR R3,[SP,#-4]!
ADD R3,R1,R1
这几句是什么意思?
感觉好像不对呀,r0,r1,r2,r3存储第1,2,3,4参数,
感觉应该将r0,,r1,r2,r3赋值才对呀。请解释
答 1: 何必?你只要用KEIL ARM软件,初始化代码自动生成!!! 答 2: 我没用过keil ARM,请问哪里能下?或者你能传给我吗? my qq: 403750184 答 3: 高手说一下 答 4: 关注我认为应该是通过以上方式(给r0,r1,r2,r3及堆栈赋值)生成所谓a,b,c,d,e.然后了用SUM函数.SUM()函数可用反编译看看! 答 5: 请周公写出一个完整的程序作为例子,帮助我们理解书上的:
int sum5(int a,int b,int c,int d,int e)
{
return (a+b+c+d+e);
}
请周公写出一个完整的程序作为例子,帮助我们理解 答 6: re:对,代码
ADD R1,R0,R0
ADD R2,R2,R0
ADD R3,R1,R2
STR R3,[SP,#-4]!
ADD R3,R1,R1
的意思就是给R1、R2、R3赋值,R0的值按默认值(此程序不修改R0),并把最后的那个参数保存到堆栈里。当然你也可以这样:
MOV R0,#10
MOV R1,#8
MOV R2,#90
...
EXPORT CALLSUM5
AREA EXAMPLE,CODE,READONLY
IMPORT sum5
CALLSUM5
STMFD SP!,{LR}
ADD R1,R0,R0
ADD R2,R2,R0
ADD R3,R1,R2
STR R3,[SP,#-4]!
ADD R3,R1,R1
BL sum5
;ADD SP,SP,#4
LDMFD SP!,{PC}
END
不知 ADD R1,R0,R0
ADD R2,R2,R0
ADD R3,R1,R2
STR R3,[SP,#-4]!
ADD R3,R1,R1
这几句是什么意思?
感觉好像不对呀,r0,r1,r2,r3存储第1,2,3,4参数,
感觉应该将r0,,r1,r2,r3赋值才对呀。请解释
答 1: 何必?你只要用KEIL ARM软件,初始化代码自动生成!!! 答 2: 我没用过keil ARM,请问哪里能下?或者你能传给我吗? my qq: 403750184 答 3: 高手说一下 答 4: 关注我认为应该是通过以上方式(给r0,r1,r2,r3及堆栈赋值)生成所谓a,b,c,d,e.然后了用SUM函数.SUM()函数可用反编译看看! 答 5: 请周公写出一个完整的程序作为例子,帮助我们理解书上的:
int sum5(int a,int b,int c,int d,int e)
{
return (a+b+c+d+e);
}
请周公写出一个完整的程序作为例子,帮助我们理解 答 6: re:对,代码
ADD R1,R0,R0
ADD R2,R2,R0
ADD R3,R1,R2
STR R3,[SP,#-4]!
ADD R3,R1,R1
的意思就是给R1、R2、R3赋值,R0的值按默认值(此程序不修改R0),并把最后的那个参数保存到堆栈里。当然你也可以这样:
MOV R0,#10
MOV R1,#8
MOV R2,#90
...
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |