[basereg, +/-indexreg]!
其中:
basereg |
指定包含基址的暫存器。 |
indexreg |
指定包含要加到 basereg 或從中減去的偏移量的暫存器。 |
! |
設定 W 位,以更新基址暫存器。 |
if U == 1 then
addr = basereg + indexreg
else/* if U == 0 */
addr = basereg - indexreg
If ConditionPassed (condition) then
basereg = addr
變址暫存器 indexreg 的值加到基址暫存器 basereg 的值,或是從中減去。如果指令中指定的條件與條件程式碼狀態匹配,則它寫回基址暫存器 basereg。
31 |
|
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
|
16 |
condition |
0 |
0 |
0 |
1 |
U |
0 |
1 |
L |
basereg |
15 |
|
|
12 |
11 |
|
|
8 |
7 |
6 |
5 |
4 |
3 |
|
|
0 |
dest |
SBZ |
1 |
S |
H |
1 |
indexreg |
L 位表示“載入”( L == 1 ) 或“儲存”( L == 0 ) 指令。
S 位表示有符號 ( S == 1 ) 或無符號 ( S == 0 ) 半字訪問。
H 位表示半字 ( H == 1 ) 或有符號位元組 ( H == 0 ) 訪問。
如果 S 與 H 表示無符號位元組(S == 0 且 H == 0),則指令不使用此定址模式。這是一個乘法指令,即 SWP 或 SWPB 指令,或是算術或載入/儲存指令擴充套件區中未分配的指令。
無符號位元組通過指令 LDRB、LDRBT、STRB 及 STRBT 訪問。這些指令使用定址模式 2。如需有關詳細資訊,請參閱“定址模式 2:載入與儲存字或無符號位元組”。