[basereg, #+/-value*4]!
其中:
basereg |
指定包含基址的暫存器。 |
value |
指定 8 位立即數偏移量,乘以 4 后與 basereg 的值一起使用,以形成地址。 |
if ConditionPassed (condition) then
if U == 1 then
basereg = basereg + value * 4
else /* U == 0 */
basereg = basereg - value * 4
start_addr = basereg
addr = start_addr
while (NotFinished (coprocessor[cpnum]))
addr = addr + 4
end_addr = addr
此定址模式建立連續地址序列。對於第一個地址,將立即數偏移量乘以四後加到基址暫存器 basereg 的值,或從中減去。如果指令中指定條件的與條件程式碼狀態匹配,則此地址寫回基址暫存器 basereg。後續地址由前一個地址遞增四得到。這會持續執行到協處理器發出指令結束訊號。這樣,協處理器便可以訪問協處理器定義的數據。
協處理器不得要求進行超過 16 個字的傳輸。
31 |
|
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
|
16 |
condition |
1 |
1 |
0 |
1 |
U |
N |
1 |
L |
basereg |
15 |
|
|
12 |
11 |
|
|
8 |
7 |
|
|
|
|
|
|
0 |
cpdest |
cpnum |
value |
如果 R15 指定為暫存器 basereg,則結果將會無法預知。