#imm
其中:
imm |
將指令中編碼的常數運算元指定為 8 位立即數 ( imm_8 ) 與 4 位立即數 ( rt_imm )。因此,imm 與將 imm_8 循環右移 ( 2*rt_imm ) 位的結果相同。 |
addr_mode = imm_8 Rotate_Right (rt_imm *2)
if rt_imm == 0 then
shifter_carry_out = C flag
else /* rt_imm != 0 */
shifter_carry_out = addr_mode[31]
此數據處理運算元是指令中定義的常數運算元。addr_mode 的值是由 8 位立即數循環右移產生的。8 位立即數循環移位到 32 位字中任何偶數位的位置。如果循環移位立即數是零,則移位器的進位是 C 標誌的值,否則它設定為 addr_mode 值的位 [31]。
31 |
|
|
28 |
27 |
26 |
25 |
24 |
|
|
21 |
20 |
19 |
|
|
16 |
condition |
0 |
0 |
1 |
opcode |
S |
op1 |
15 |
|
|
12 |
11 |
|
|
8 |
7 |
|
|
|
|
|
|
0 |
dest |
rt_imm |
imm_8 |
更精確的編碼控制是使用語法直接指定的指令欄位提供的:
#imm_8, rt_amount
其中:
rt_amount = 2*rt_imm