op2, ROR #sh_imm
其中:
op2 |
指定包含要循環移位的值的暫存器。 |
ROR |
表示循環右移。 |
sh_imm |
指定循環移位量。此值介於 1 與 31 之間。sh_imm == 0 時,執行 RRX 操作(擴充套件循環右移)。如需有關詳細資訊,請參閱“數據處理運算元:擴充套件循環右移 (AM 1)”。 |
if sh_imm == 0 then
See Data-Processing Operands: Rotate Right with Extend (AM 1)
else /* sh_imm < 0 */
addr_mode = op2 Rotate_Right sh_imm
shifter_carry_out = op2[sh_imm -1]
此數據處理運算元提供按常數循環移位的暫存器值。
此指令運算元代表按立即數循環右移的暫存器 op2 的值,該立即數介於 1 與 31 之間。循環移位到右端以外時,將一些位插入左側騰出的空位上。最後一個循環移位到右端以外的位是移位器的進位。
31 |
|
|
28 |
27 |
26 |
25 |
24 |
|
|
21 |
20 |
19 |
|
|
16 |
condition |
0 |
0 |
0 |
opcode |
S |
op1 |
15 |
|
|
12 |
11 |
|
|
|
7 |
6 |
5 |
4 |
3 |
|
|
0 |
dest |
sh_imm |
1 |
1 |
0 |
op2 |
如果 R15 指定為暫存器 op2 或 op1,則使用的值是目前指令的地址加 8。