“載入與儲存協處理器”定址模式分成 4 個子模式。它們用於計算載入與儲存協處理器指令的地址。此定址模式的一般語法在後續部分提供。
opcode [condition] [L] cpname, cpdest, addr_mode
其中:
opcode |
指定指令操作。 |
condition |
16 個條件之一。請參閱條件程式碼狀態。 |
L |
指定位 [22]、N 位: |
cpname |
協處理器名稱 (p0..p15) |
cpdest |
指定目標協處理器暫存器。 |
addr_mode 是以下 6 種子模式之一:
子模式 |
說明 |
---|---|
[basereg, #+/-value*4] |
偏移量選項: |
[basereg #+/-value*4]! |
事先變址選項: |
[basereg], #+/-value*4 |
事後變址選項: |
[basereg], option |
非變址選項: |
下表顯示此定址模式的編碼:
31 |
|
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
|
16 |
condition |
1 |
1 |
0 |
P |
U |
N |
W |
L |
basereg |
15 |
|
|
12 |
11 |
|
|
8 |
7 |
|
|
|
|
|
|
0 |
cpdest |
cpnum |
value |
其中:
P |
P == 0 表示事後變址定址。基址暫存器的值用作記憶體地址。偏移量應用於基址暫存器的值,並寫回基址暫存器。 |
U |
表示是將偏移量加到基址還是從中減去: |
N |
此位有依賴於協處理器的含義。建議使用此位區分要傳輸的不同大小的值。 |
W |
有兩個含義: |
L |
表示載入或儲存: |
cpnum |
協處理器編號 |
W 位的含義取決於 P 的設定:
|
P==0 |
P==1 |
W==0 |
執行非變址定址。為此 U 位必須是 U == 1,否則結果未定義或無法預知。 |
基址暫存器不更新(偏移量定址)。 |
W==1 |
執行事後變址定址。 |
計算的記憶體地址寫回基址暫存器(事先變址定址)。 |