指令表关键词 |
|
|
|
Rm {, <opsh>} |
寄存器移位方式,将寄存器的移位结果作为操作数而Rm值保持不变 |
|
|
|
<Operand2> |
灵活的使用第二个操作数。移位和循环最合适作为第二操作数的一部分使用 |
<reglist> |
由大括号括起来的一些用逗号分割的寄存器列表。如:{ and }. |
|
<fields> |
查看程序状态寄存器域目录. |
<reglist-PC> |
加载或存储的寄存器列表,但不含程序计数器寄存器。 |
|
<PSR> |
包含CPSR (当前程序状态寄存器) 或SPSR (程序状态保存寄存器) |
<reglist+PC> |
须有程序计数器寄存器列表。将SPSR拷贝到CPSR中,用于从异常处理返回。 |
|
C*, V* |
标志值在V4及之前的架构中是不确定的, 在V5及之后则是不变的. |
+/- |
正或负. (+ 有可能被忽略.) |
|
<Rs|sh> |
可能是Rs或一个可移位的立即数. 值由寄存器中可用的各种移位方式进行 |
§ |
ARM体系结构版本 |
|
|
任意位循环移动得到 |
<iflags> |
中断标志. 一个或多个异常,中断,快速中断. |
|
x,y |
B 指寄存器低位 [15:0], 而 T 指高位[31:16]. (Bottom,Top) |
<p_mode> |
识别处理机模式 |
|
<imm8m> |
ARM: 32位常数,由一个8位数循环右移偶数位得到。 |
SPm |
由<p_mode>区分的处理机模式的堆栈指针 |
|
|
Thumb: 32位常数,由一个8位数左移一位或多位数得到。 |
<lsb> |
位域的最低有效位 |
|
|
型如以下形式之一: 0xXYXYXYXY, 0x00XY00XY or 0xXY00XY00 |
<width> |
位域的宽度. <width> + <lsb> 须<=32 |
|
<prefix> |
相似指令的前缀 |
{X} |
RsX 是在x置位时Rs循环移动16位. 否则, RsX=Rs. |
|
{IA|IB|DA|DB} |
分别指:传送后地址增加, 传送前地址增加, 传送后地址减少, 传送前地址减少4个字节。 |
{!} |
若 ! 存在 (预先变址),则数据传送后更新基址寄存器(Rn)。 |
|
|
IB和 DA在Thumb状态下是不可用的. 如未指定,默认使用IA. |
{S} |
若S存在更新标志位 |
|
<size> |
B , SB, H, or SH, 分别指:字节, 带符号位的字节, 半字, 带符号位的半字。 |
{T} |
若T存在给用户模式特权 |
|
|
SB 和 SH在STR 指令中不可用。 |
{R} |
若R存在恢复最近的结果,否则丢弃结果。 |
|