英特爾 XScale(R) 技術主題按立即數算術右移 (AM 1)

語法

op2, ASR #sh_imm

其中:

 op2

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

 ASR

指示算術右移。

 sh_imm

指定移位。此值介於 1 與 32 之間。移 32 位使用 sh_imm == 0 編碼表示。

說明

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

if sh_imm == 0 then
  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]
else /* sh_imm > 0 */
  addr_mode = op2 Arithmetic_Shift_right sh_imm
  shifter_carry_out = op2[sh_imm -1]

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

此指令運算元代表按立即數算術右移的暫存器 op2 的值,該立即數介於 1 與 32 之間。在騰出的位中,將插入 op2 ( op2 [31] ) 的符號位。最後移出的位是移位器的進位。

編碼

31

 

 

28

27

26

25

24

 

 

21

20

19

 

 

16

 condition

 0

 0

 0

 opcode

 S

 basereg

15

 

 

12

11

 

 

 

7

6

5

4

3

 

 

0

 dest

 sh_imm

 1

 0

 0

 op2

備註

如果 R15 指定為暫存器 op2op1,則使用的值是目前指令的地址加 8。

示例

ADC     R6, R2, R12, ASR #4

更多資訊

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