5.6.2. VLDM、VSTM、VPOP 和 VPUSH

扩展寄存器加载多个、存储多个、从堆栈弹出、推入堆栈。

语法

VLDMmode{cond} Rn{!}, Registers
VSTMmode{cond} Rn{!}, Registers
VPOP{cond} Registers
VPUSH{cond} Registers

其中:

mode

必须是下列值之一:

IA

表示在每次传送后递增地址。IA 是缺省值,可以省略。

DB

表示在每次传送前递减地址。

EA

表示空的升序堆栈操作。 对于加载操作,该值与 DB 相同;对于保存操作,该值与 IA 相同。

FD

表示满降序堆栈操作。 对于加载操作,该值与 IA 相同;对于保存操作,该值与 DB 相同。

有关等效的寻址模式后缀,请参阅Table 2.9

cond

是一个可选的条件代码(请参阅条件代码)。

Rn

是存放要传送的基址的 ARM 寄存器。

!

是可选的。! 指定必须将更新后的基址写回到 Rn 中。 如果未指定 !,则 mode 必须为 IA

Registers

是一个用大括号 {} 括起的连续扩展寄存器的列表。 该列表可用逗号分隔,也可以采用范围格式。 列表中必须至少有一个寄存器。

可指定 SDQ 寄存器,但一定不能混用这些寄存器。 D 寄存器的数目不得超过 16 个,Q 寄存器的数目不得超过 8 个。 如果指定 Q 寄存器,则在反汇编时它们将显示为 D 寄存器。

Note

VPOP Registers 等效于 VLDM sp!, Registers

VPUSH Registers 等效于 VSTMDB sp!, Registers

可以使用上述指令的任一形式。 这些指令将反汇编为 VPOPVPUSH

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential