DB
start_addr = basereg - (Bit_Number_Of(reglist) * 4)
end_addr = basereg - 4
if ConditionPassed (condition) and W == 1 then
basereg = basereg - (Bit_Number_Of(reglist) * 4)
“之前遞減”形成多重載入與儲存指令的地址範圍。第一個地址 start_addr 是 basereg 的值減去 reglist 中暫存器數量的四倍。後續的地址通過遞增四得到。對於 reglist 中的每個暫存器,需要使用一個地址。最後一個地址 end_addr 是 basereg 的值減四。假設 condition 有一個有效值,且 W 位已置位,則 basereg 等於 reglist 中指定的每個暫存器遞減四。
31 |
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
16 |
15 |
|
0 |
condition |
1 |
0 |
0 |
1 |
0 |
S |
W |
L |
basereg |
reglist |