About The Instruction Descriptions; Operands; Restrictions When Using Pc Or Sp; Shift Operations - ST STM32F0 Series Programming Manual

Hide thumbs Also See for STM32F0 Series:
Table of Contents

Advertisement

The STM32 Cortex-M0 instruction set
3.3

About the instruction descriptions

The following sections give more information about using the instructions:
Operands on page 36
Restrictions when using PC or SP on page 36
Shift operations on page 36
Address alignment on page 39
PC-relative expressions on page 39
Conditional execution on page 39
3.3.1

Operands

An instruction operand can be:
an ARM register,
a constant,
or another instruction-specific parameter.
Instructions act on the operands and often store the result in a destination register.
When there is a destination register in the instruction, it is usually specified before the
operands. Operands in some instructions are flexible in that they can either be a register or
a constant (see
3.3.2

Restrictions when using PC or SP

Many instructions have restrictions on whether you can use the program counter (PC) or
stack pointer (SP) for the operands or destination register. See instruction descriptions for
more information.
Bit[0] of any address written to the PC with a BX, BLX or POP instruction must be 1 for
correct execution, because this bit indicates the required instruction set, and the Cortex-M0
processor only supports thumb instructions. When a BL or BLX instruction writes the value
of bit[0] into the LR it is automatically assigned the value 1.
3.3.3

Shift operations

Register shift operations move the bits in a register left or right by a specified number of bits,
the shift length. Register shift can be performed directly by the instructions ASR, LSR, LSL
and ROR. The result is written to a destination register.
The permitted shift lengths depend on the shift type and the instruction (see the individual
instruction description).
If the shift length is 0, no shift occurs.
Register shift operations update the carry flag except when the shift length is 0.
The following sub-sections describe the various shift operations and how they affect the
carry flag. In these descriptions, Rm is the register containing the value to be shifted, and n is
the shift length.
36/91
Shift
operations).
Doc ID 022979 Rev 1
PM0215

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the STM32F0 Series and is the answer not in the manual?

Table of Contents