ARM银行注册确认吗?

ARM银行注册确认吗?,arm,cpu-registers,Arm,Cpu Registers,阅读第4.1.4节,其解释如下: 注册银行是指在同一地址提供多份注册副本。寄存器访问的属性决定了寄存器的哪个副本被寻址 我对同一地址的有点困惑。 e、 g.如果R12和R12_fiq是同一寄存器,处理器如何保证R12中的原始数据不会在fiq模式下被覆盖。有必要保证吗 我在网上搜索了很长时间。但是没有用。这对我没有帮助 我认为贝诺特的回答是有帮助的,但我不确定 提前谢谢 ------------更新----- 根据domen的回答,R8_usr和R8_fiq是两个不同的寄存器。对不起,我不知道如何

阅读第4.1.4节,其解释如下:

注册银行是指在同一地址提供多份注册副本。寄存器访问的属性决定了寄存器的哪个副本被寻址

我对同一地址的
有点困惑。
e、 g.如果R12和R12_fiq是同一寄存器,处理器如何保证R12中的原始数据不会在fiq模式下被覆盖。有必要保证吗

我在网上搜索了很长时间。但是没有用。这对我没有帮助

我认为贝诺特的回答是有帮助的,但我不确定

提前谢谢

------------更新-----

根据domen的回答,R8_usr和R8_fiq是两个不同的寄存器。对不起,我不知道如何投票给他。我还注意到,在ensc的回答中提到了“专用”一词,也许他知道它们是不同的。但由于我描述得不好,他没有强调这一点。

“GIC”和
R12
没有多少共同点。GIC是一个控制器(由一些,但不是每个ARM CPU使用),可以通过内存地址访问。根据安全模式和/或cpu节点的不同,相同的地址可以提供不同内部寄存器的视图

R12
是一个CPU寄存器。由于效率原因(例如,为了避免在离开FIQ时恢复其以前的值),FIQ模式有一组专用的上层寄存器(
r8
-
r15


堆栈指针(
r13
)和
lr
r14
)也可以倾斜,以便例如IRQ模式可以有自己的堆栈,或者在
lr
(例如堆栈对齐)中发出特定状态的信号。

对不起,我的描述不好,实际上参考部分来自enjoylife的答案。在第二段中,您提到了
FIQ模式有一个专用的上层寄存器组(r8-r15)
。我猜你想说r8到r15。我注意到“专用”这个词,你的意思是r8\u fiq和r8\u usr不同吗?关于第三段,我在《ARM体系结构参考手册》第2.3节中读到了这一点。我感到困惑的是enjoylife的参考:>注册银行是指在同一地址提供多份注册副本。如果这在ARM中是真的,我认为r8_riq与r8_usr是一样的,尽管r8_fiq只能在fiq模式下访问。在fiq模式下,我认为处理器只能访问r8_fiq(我想强调的是,它不能访问r8_usr等)。如果处理器更改了r8_fiq中的数据,r8_usr中的数据也会更改吗?如果r8_usr和r8_fiq是相同的,我认为它也会改变。你怎么看?抱歉,似乎特征线不起作用,我不知道如何修复。你不能直接访问
r8\u fiq
。在FIQ模式下执行
mov r8、#0
时,在
r8_FIQ
中写入
#0
;当你在ianother模式下执行此操作时,你会将问题写入
r8\u usr
。我想我最好将问题分解成小块。(1) 您是否同意“注册银行”一词是指在同一地址提供多份注册副本。
?(2) 我同意这句话,我想知道,根据同一地址的
,这是否意味着R8_usr和R8_fiq是同一寄存器,只是在两种不同的模式下命名不同?(3) 如果你不同意这句话,你认为R8_usr和R8_fiq是不同的寄存器,就像R1和R5之间的差异一样吗?(4) 由于您的回答,我们将提出更多问题。(5) 提前感谢。GIC banking适用于安全/正常世界(或CP15的NS位)。如果不使用trustzone,则它不适用。对于ARM模式(R8_FIQ、LR_IRQ等),在寄存器上操作的常规ARM指令会影响模式的倾斜寄存器。GIC银行不同,因为它位于内存映射寄存器地址。特殊的上下文切换指令,可从特权模式访问存储寄存器。它允许相同的代码在不同的模式下运行,而无需保存寄存器;或者在其他情况下,它提供了一些保存/还原非银行/共享寄存器的方法。在stackoverflow这里可以看到很多。@artlessnoise实际上我不熟悉GIC,我只是从链接中的enjoylife的答案中引用了这一点。|我在问题陈述中提到,我已经通读了与您给定链接相关的问题无论如何,感谢您对GIC银行业务的清晰解释。只是GIC银行业务可能有相同的名称,但它在功能上与ARM银行业务大不相同。这在概念上是相同的。我只是想确保看问题的人需要知道一个问题并不是100%对应于另一个问题(以及帮助你理解)。