IB
The addressing mode "increment before" performs the following operation (pseudo-code description):
start_addr = basereg + 4
end_addr = basereg + (Bit_Number_Of(reglist) * 4)
if ConditionPassed (condition) and W == 1 then
basereg = basereg + (Bit_Number_Of(reglist) * 4)
"Increment before" forms a range of addresses for Load and Store Multiple instructions. The first address start_addr is the value of basereg 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 sum of basereg and four times the number of registers contained in reglist . Provided condition has a valid value and the W bit is set, basereg is incremented 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 |
1 |
1 |
S |
W |
L |
basereg |
|
|
reglist |
|
|
STMIB R0, {R1 - R3, R7, R13}
See Addressing
Mode 4: Load and Store Multiple
See Alternative Names
See Assembler Instructions