以下 ARM 指令在一条指令中将多个浮点寄存器存储在内存中(当然,在每个寄存器存储之后递增基地址):
VSTMIA R0! {S1-S4}
现在的问题是寄存器列表必须是连续的,即如果你想在 R0 中传输寄存器,例如 R0 中的 S1,R0 + 4 中的 S3,你不能在不调用单个存储的情况下做到这一点。我有几个寄存器想一次性存储在内存中,但问题是它们需要以不同的顺序存储。我真的不想交换寄存器(我有大约 7 个寄存器)。那么有没有更聪明的方法呢?还想知道是否有人知道使用 VSTM 进行单次多次传输是否比使用单个 VSTR 指令进行多次传输更快?