Datasheet

Table Of Contents
3.4.8.2. Operation
Copy data from Source to Destination.
Destination:
000: PINS (Uses same pin mapping as OUT)
001: X (Scratch register X)
010: Y (Scratch register Y)
011: Reserved
100: EXEC (Execute data as instruction)
101: PC
110: ISR (Input shift counter is reset to 0 by this operation, i.e. empty)
111: OSR (Output shift counter is reset to 0 by this operation, i.e. full)
Operation:
00: None
01: Invert (bitwise complement)
10: Bit-reverse
11: Reserved
Source:
000: PINS (Uses same pin mapping as IN)
001: X
010: Y
011: NULL
100: Reserved
101: STATUS
110: ISR
111: OSR
MOV PC causes an unconditional jump. MOV EXEC has the same behaviour as OUT EXEC (section Section 3.4.5), and allows
register contents to be executed as an instruction. The MOV itself executes in 1 cycle, and the instruction in Source on the
next cycle. Delay cycles on MOV EXEC are ignored, but the executee may insert delay cycles as normal.
The STATUS source has a value of all-ones or all-zeroes, depending on some state machine status such as FIFO full/empty,
configured by EXECCTRL_STATUS_SEL.
MOV can manipulate the transferred data in limited ways, specified by the Operation argument. Invert sets each bit in
Destination to the logical NOT of the corresponding bit in Source, i.e. 1 bits become 0 bits, and vice versa. Bit reverse sets
each bit n in Destination to bit 31 - n in Source, assuming the bits are numbered 0 to 31.
3.4.8.3. Assembler Syntax
mov <destination>, ( op ) <source>
where:
<destination> Is one of the destinations specified above.
RP2040 Datasheet
3.4. Instruction Set 329