我正在查看U-Boot的代码,该代码允许使用管理程序模式并将初始权限提升为HYP模式。但是,当我试图理解代码时,一个神秘的注册名称会让我感到烦恼。
来自1:
mov lr, ip
mov ip, #(F_BIT | I_BIT | A_BIT) @ Set A, I and F
tst lr, #1 @ Check for Thumb PC
orrne ip, ip, #T_BIT @ Set T if Thumb
orr ip, ip, r6 @ Slot target mode in
msr spsr_cxfs, ip @ Set full SPSR
movs pc, lr @ ERET to non-secure
:
spsr_cxfs
什么是throw
?我尝试使用谷歌,但结果是警告我可能正在寻找有关SPSR_CX SF 的结果,以及一堆类似编码的汇编代码。
答案 0 :(得分:3)
寄存器是SPSR;其余的只是表示要更新的部分。
总结“架构参考手册”中的定义,此处msr
的操作数为SPSR_<fields>
,其中<fields>
&#34;是&#34;中的一个或多个的序列。 c
,x
,s
,f
,分别代表位7:0,15:8,23:16和31:24。
但是,对于该序列的特定订单的任何特定授权,我不希望任何合理的汇编程序也不关心。