Cortex-M3 Processor (Reference Material)
UG0331 User Guide Revision 15.0
57
3.6.3.8
Instruction Width Selection
There are many instructions that can generate either a 16-bit encoding or a 32-bit encoding depending
on the operands and destination register specified. For some of these instructions, you can force a
specific instruction size by using an instruction width suffix. The .W suffix forces a 32-bit instruction
encoding. The .N suffix forces a 16-bit instruction encoding.
If you specify an instruction width suffix and the assembler cannot generate an instruction encoding of
the requested width, it generates an error.
Note:
In some cases it might be necessary to specify the .W suffix, for example if the operand is the label of an
instruction or literal data, as in the case of branch instructions. This is because the assembler might not
automatically generate the right size encoding.
To use an instruction width suffix, place it immediately after the instruction mnemonic and condition code,
if any. The following example shows instructions with the instruction width suffix.
Example 3
Instruction width selection
BCS.W label ; creates a 32-bit instruction even for a short branch
ADDS.W R0, R0, R1 ; creates a 32-bit instruction even though the same
; operation can be done by a 16-bit instruction
3.6.4
Memory Access Instructions
The following table provides memory access instructions:
Table 30 •
Memory Access Instructions
Mnemonic
Brief Description
See
ADR
Generate PC-relative address
CLREX
Clear Exclusive
LDM{mode}
Load Multiple registers
LDR{type}
Load Register using immediate offset
LDR and STR, Immediate Offset,
LDR{type}
Load Register using register offset
LDR{type}T
Load Register with unprivileged access
LDR
Load Register using PC-relative address
LDREX{type}
Load Register Exclusive
POP
Pop registers from stack
PUSH
Push registers onto stack
STM{mode}
Store Multiple registers
STR{type}
Store Register using immediate offset
LDR and STR, Immediate Offset,
STR{type}
Store Register using register offset
STR{type}T
Store Register with unprivileged access
STREX{type}
Store Register Exclusive