共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
| TCS3472S传感器及其色彩检测被打赏¥19元 | |
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
我要赚赏金
