ASR dest, op1, #value
其中:
dest |
目標暫存器 |
op1 |
包含第一個運算元的暫存器 |
value |
5 位立即數,形成 [1...32] 範圍內的移位。 |
此格式 ASR 指令向右移位,op1 中的位按照 value 中指定的數量進行移位,並將結果儲存到 dest。如果 value 包含的移位量在 [1...31] 範圍內,則直接編碼。如果 value 包含的移位量等於 [32],則編碼成 value ==0。結果表示將暫存器中的有符號值除以 2 的常數次冪。
無運算元。
>N |
Z |
C |
V |
Q |
S |
I |
>F |
T |
M |
M |
M |
|
|
|
|
|
|
15 |
14 |
13 |
12 |
11 |
10 |
|
6 |
5 |
|
3 |
2 |
|
0 |
0 |
0 |
0 |
1 |
0 |
value |
op1 |
dest |
1 ;@.text
2 ;@.globl funasr
3 ;@.align 0
4 ;
5 AREA example,CODE,READONLY
6 CODE16
7
8 label1
9 ; Arithmetic Shift Right value in R3
10 ; 7 times.Put result in R2
11 00000000 F7C3 MOV R3, #OxFF
12 00000002 11DA ASR R2, R3, #7