EasyManua.ls Logo

Microsemi SmartFusion2 - Page 107

Microsemi SmartFusion2
829 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Cortex-M3 Processor (Reference Material)
UG0331 User Guide Revision 15.0 73
cond is an optional condition code, see Conditional Execution, page 55.
Rd is the destination register.
Operand2 is a flexible second operand. See Flexible Second Operand, page 51 for details of the options.
imm16 is any value in the range 0-65535.
3.6.5.6.2 Operation
The
MOV
instruction copies the value of
Operand2
into
Rd
.
When
Operand2
in a
MOV
instruction is a register with a shift other than
LSL #0
, the preferred syntax is the
corresponding shift instruction:
ASR{S}{cond} Rd, Rm, #n
is the preferred syntax for
MOV{S}{cond} Rd, Rm, ASR #n
LSL{S}{cond} Rd, Rm, #n
is the preferred syntax for
MOV{S}{cond} Rd, Rm, LSL #n
if
n
!= 0
LSR{S}{cond} Rd, Rm, #n
is the preferred syntax for
MOV{S}{cond} Rd, Rm, LSR #n
ROR{S}{cond} Rd, Rm, #n
is the preferred syntax for
MOV{S}{cond} Rd, Rm, ROR #n
RRX{S}{cond} Rd, Rm
is the preferred syntax for
MOV{S}{cond} Rd, Rm, RRX
.
Also, the
MOV
instruction permits additional forms of
Operand2
as synonyms for shift instructions:
MOV{S}{cond} Rd, Rm, ASR Rs
is a synonym for
ASR{S}{cond} Rd, Rm, Rs
MOV{S}{cond} Rd, Rm, LSL Rs
is a synonym for
LSL{S}{cond} Rd, Rm, Rs
MOV{S}{cond} Rd, Rm, LSR Rs
is a synonym for
LSR{S}{cond} Rd, Rm, Rs
MOV{S}{cond} Rd, Rm, ROR Rs
is a synonym for
ROR{S}{cond} Rd, Rm, Rs
See ASR, LSL, LSR, ROR, and RRX, page 71.
The
MVN
instruction takes the value of
Operand2
, performs a bitwise logical NOT operation on the value,
and places the result into
Rd
.
Note: The
MOVW
instruction provides the same function as
MOV
, but is restricted to using the
imm16
operand.
3.6.5.6.3 Restrictions
You can use SP and PC only in the
MOV
instruction, with the following restrictions:
the second operand must be a register without shift
you must not specify the
S
suffix.
When
Rd
is PC in a
MOV
instruction:
bit[0] of the value written to the PC is ignored
a branch occurs to the address created by forcing bit[0] of that value to 0.
Note: Though it is possible to use
MOV
as a branch instruction, ARM strongly recommends the use of a
BX
or
BLX
instruction to branch for software portability to the ARM instruction set.
3.6.5.6.4 Condition Flags
•If
S
is specified, these instructions:
update the N and Z flags according to the result
can update the C flag during the calculation of
Operand2
, see Flexible Second Operand, page 51
do not affect the V flag.
Example
MOVS R11, #0x000B ; Write value of 0x000B to R11, flags get updated
MOV R1, #0xFA05 ; Write value of 0xFA05 to R1, flags are not updated
MOVS R10, R12 ; Write value in R12 to R10, flags get updated
MOV R3, #23 ; Write value of 23 to R3
MOV R8, SP ; Write value of stack pointer to R8
MVNS R2, #0xF ; Write value of 0xFFFFFFF0 (bitwise inverse of 0xF)
; to the R2 and update flags.

Table of Contents

Other manuals for Microsemi SmartFusion2

Related product manuals