在AArch32中访问Banked Registers

时间:2015-08-13 18:34:19

标签: assembly arm interrupt armv7

我想知道如何访问诸如sp_irq,sp_fiq等库存寄存器。

ARM v8 ARM描述描述了MRS / MSR指令的编码,它允许程序员直接访问这些寄存器,但由于某些原因,MSR sp_irq, r0无法编译,因为寄存器名称无法识别。< / p>

是否有一些编译器选项我缺失了,我使用了错误的语法,还是我甚至无法做到的?

1 个答案:

答案 0 :(得分:1)

由于问题没有说明指定CPU模式(32/64)而没有特定的编译器,我会尝试根据我的经验回答:

AARCH32: 这可能是一个大/小写的问题。尝试使用 SP_irq ,sp_IRQ,SP_IRQ等组合。由于这个大/小写的问题,我在GCC遇到了问题。

AARCH64: 64位GP寄存器直接映射到32位寄存器。在ARM V8架构参考手册的 AArch32状态和AArch64状态之间的寄存器映射中对此进行了解释。

EG。 SP_irq&lt; ==&gt; X17

希望这有帮助。