找回密码
 注册
关于网站域名变更的通知
查看: 261|回复: 2
打印 上一主题 下一主题

arm的保护现场,不选择R4-R11?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-29 10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
为什么保护现场时,总是保护 R0-R3,R12,为什么不保护R4-R11
) H+ Y/ w/ t$ {- o

该用户从未签到

2#
发表于 2022-9-29 11:14 | 只看该作者
可以看一看"ARM-thumb 过程调用标准"这个文档。讲的详细。6 U- M5 R% V5 h2 S) \5 J/ M
0 G3 l8 ]* t, M. B* X3 @$ `& d, h
使用寄存器 r0-r3 将参数值传送到函数,并将结果值传出。可以用 a1-a4 来引用 r0-r3。在子程序调用之间,可以将 r0-r3 用于任何用途。被调用函数在返回之前不必恢复 r0-r3。- Z& S+ A: Z  P0 ?4 [
如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。/ F+ g4 h- [- F# ?
- 使用寄存器 r4-r11 存放函数的局部变量。可以用 v1-v8 来引用这些寄存器,以使此用法透明。在 Thumb 状态下,在大多数指令中只有寄存器 r4-r7 可以用于局部变量。
- I) J5 J9 \% Q8 a. F5 |如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。
% C- D2 a+ l6 u$ R$ c  c3 M- 寄存器 r12 是内部调用暂时寄存器 ip。它在过程链接胶合代码中用于此角色。在过程调用之间,可以将它用于任何用途。被调用函数在返回之前不必恢复 r12。

该用户从未签到

3#
发表于 2022-9-29 11:23 | 只看该作者
ATPCS 是指定用于特殊用途的寄存器。
* S. T9 ]) s% Zr0-r3是自变量/结果/暂时寄存器% n' u* F% K) ^% |1 W" u2 R
r12是内部过程调用暂时寄存器。不要用错了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 10:18 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表