DA
The addressing mode "decrement after" performs the following operation (pseudo-code description):
start_addr = basereg - (Bit_Number_Of(reglist)
* 4) + 4
end_addr = basereg
if ConditionPassed (condition) and W == 1 then
basereg = basereg - (Bit_Number_Of(reglist) * 4)
"Decrement after" forms a range of addresses for load and store multiple instructions. The first address start_addr is the value of basereg minus four times the number of registers contained in reglist , plus four. Subsequent addresses are derived by increments of four. One address is required for each register in reglist . The last address end_addr is the value of basereg . Provided condition has a valid value and the W bit is set, basereg is decremented by four for each register specified in reglist.
|
31 |
|
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
|
16 |
15 |
|
0 |
|
condition |
|
|
1 |
0 |
0 |
0 |
0 |
S |
W |
L |
basereg |
|
|
reglist |
|
|
STMDA R0, {R1 - R3, R7, R13}
See Addressing Mode
4: Load and Store Multiple
See Alternative Names
See Assembler Instructions