FPU有32个浮点寄存器,s0~s31,使用vmov汇编指令往浮点寄存器里移数据,出现一个有意思的问题,先看汇编代码:
ialg0 RN 9
movw ialg0,0x0000
movt ialg0,0x4040
vmov.f32 s0,ialg0
vmov.f32 s1,ialg0
vmov.f32 s7,ialg0
执行vmov.f32 s0,ialg0和vmov.f32 s1,ialg0时,0x40400000被移动到s0和s1中,当执行vmov.f32 s7,ialg0时,0x40400000不仅被移动到s7中,同时也被移动到s22中。
对其他浮点寄存器进行vmov操作,最后发现,往s0~s6移动数据时,数据仅仅移动到s0~s7,但是往s7~s16中移动数据时,数据也会被同时移到s22~s31。s7、s22;s8、s23;它们的标号刚好差15.
问题:从代码调试的结果来看,s7和s22,s8和s23,s16和s31,这些寄存器的操作都是成对出现的。需要进行什么设置,才能解除它们的绑定关系吗?(文档里没有看到相关的内容)