之前遞減 (AM 4)

語法

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_addrbasereg 的值減去 reglist 中暫存器數量的四倍。後續的地址通過遞增四得到。對於 reglist 中的每個暫存器,需要使用一個地址。最後一個地址 end_addrbasereg 的值減四。假設 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

示例

STMDB    R0, {R1 - R3, R7, R13}

更多資訊

請參閱定址模式 4:多重載入與儲存
請參閱替換性名稱

請參閱彙編器指令