共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
| 三分钟快速上手搭建nRF Connect SDK开发环境(VSCode)被打赏¥25元 | |
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
我要赚赏金
