[basereg, #+/-value
其中:
basereg |
指定包含基址的暫存器。 |
value |
指定 8 位立即數偏移量,與 basereg 的值一起使用,以形成地址。偏移量在 immH(前 4 位)與 immL(后 4 位)中編碼 |
value = (immH << 4) OR immL
if U == 1 then
addr = basereg + value
else /* U == 0 */
addr = basereg - value
此定址模式將立即數偏移量的值加到基址暫存器 basereg 的值,或從中減去,以計算地址。它用於訪問結構(記錄)欄位、訪問堆疊幀中的參數與區域性變數。如果偏移量是零,則產生的地址是基址暫存器 basereg 的值。
31 |
|
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
|
16 |
condition |
0 |
0 |
0 |
1 |
U |
1 |
0 |
L |
basereg |
15 |
|
|
12 |
11 |
|
|
8 |
7 |
6 |
5 |
4 |
3 |
|
|
0 |
dest |
immH |
1 |
S |
H |
1 |
immL |
L 位表示“載入”( L == 1 ) 或“儲存”( L == 0 ) 指令。
S 位表示有符號的 ( S == 1 ) 或無符號的 ( S == 0 ) 半字訪問。
H 位表示半字 ( H == 1 ) 或有符號位元組 ( H == 0 ) 訪問。
語法 [basereg] 視作 [basereg, #0] 的縮寫。
如果 R15 指定為暫存器 basereg,則使用的值是目前指令的地址加 8。