英特爾 XScale(R) 技術主題按暫存器算術右移 (AM1)

語法

op2, ASR op3

其中:

 op2

指定包含要移位的值的暫存器。

 ASR

指示算術右移。

 op3

指定包含移位值的暫存器。

說明

數據處理運算元“按暫存器算術右移”執行以下操作(偽程式碼說明):

if op3[7:0] == 0 then
  addr_mode = op2
  shifter_carry_out = C Flag
else if op3[7:0] < 32 then
  addr_mode = op2 Arithmetic_Shift_Right op3[7:0]
  shifter_carry_out = op2[op3[7:0] - 1]
else /* op3[7:0] >= 32 */
  if op2[31] == 0 then
      addr_mode = 0
      shifter_carry_out = op2[31]
  else /*op2[31] == 1 */
      addr_mode = 0xFFFFFFFF
      shifter_carry_out = op2[31]

此數據處理運算元提供算術右移暫存器的有符號值(除以 2 的可變次冪)。

此指令運算元代表算術右移暫存器 op2 的值,移位量等於暫存器 op3 最低有效位元組中的值。在騰出的位中,將插入 op2 ( op2 [31] ) 的符號位。最後移出的位是移位器的進位。如果移位量超過 32,則此位是 op2 的符號位。如果移位量等於 0,則進位是 C 標誌。

編碼

31

 

 

28

27

26

25

24

 

 

21

20

19

 

 

16

 condition

 0

 0

 0

 opcode

 S

 op1

15

 

 

12

11

 

 

8

7

6

5

4

3

 

 

0

 dest

 op3

 0

 1

0

 1

 op2

注意

如果 R15 指定為暫存器 destop3op2op1,則結果將會無法預知!

示例

ADC    R7, R3, R13, ASR R4

更多資訊

請參閱定址模式 1:數據處理運算元
請參閱彙編器指令