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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
为什么保护现场时,总是保护 R0-R3,R12,为什么不保护R4-R11 ' {4 R1 K( \/ q0 }% ~

该用户从未签到

2#
发表于 2022-9-29 11:14 | 只看该作者
可以看一看"ARM-thumb 过程调用标准"这个文档。讲的详细。; M- P9 K* d, O9 f* Q* E6 q$ p$ E2 Q

* x  e. N; M4 }" M9 [* V0 t$ o$ C使用寄存器 r0-r3 将参数值传送到函数,并将结果值传出。可以用 a1-a4 来引用 r0-r3。在子程序调用之间,可以将 r0-r3 用于任何用途。被调用函数在返回之前不必恢复 r0-r3。
+ F/ Y+ |4 V: n  \" B% h如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。
5 ?2 ^4 Z  H# T/ S! C( [5 A- 使用寄存器 r4-r11 存放函数的局部变量。可以用 v1-v8 来引用这些寄存器,以使此用法透明。在 Thumb 状态下,在大多数指令中只有寄存器 r4-r7 可以用于局部变量。7 ]  K. x, @4 R9 X1 H
如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。
7 V' E' x9 N5 o& @- 寄存器 r12 是内部调用暂时寄存器 ip。它在过程链接胶合代码中用于此角色。在过程调用之间,可以将它用于任何用途。被调用函数在返回之前不必恢复 r12。

该用户从未签到

3#
发表于 2022-9-29 11:23 | 只看该作者
ATPCS 是指定用于特殊用途的寄存器。) U  r- r/ w0 H% Z
r0-r3是自变量/结果/暂时寄存器' Y. `- t1 u1 U1 d/ T! c" u  L
r12是内部过程调用暂时寄存器。不要用错了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-8 16:43 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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