# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# PIC24FJ64GA004 - Programmers Reference Manual

- 1
- 2
…
- 284
- 285
- 286
- 287
- 288
…
- 501
- 502

16-bit MCU and DSC Programmer’s Reference Manual
DS70157F-page 286 © 2005-2011 Microchip Technology Inc.
Example 2:
MOV [W4+0x3E8], W2 ; load W2 with [W4+0x3E8]
; (Word mode)
Before
Instruction
After
Instruction
W2 9088 W2 5634
W4 0800 W4 0800
Data 0BE8 5634 Data 0BE8 5634
SR 0000 SR 0000
MOV
Move Wns to [Wd with offset]
Implemented in: PIC24F PIC24H PIC24E dsPIC30F dsPIC33F dsPIC33E
X X X X X X
Syntax: {label:} MOV{.B} Wns, [Wd + Slit10]
Operands: Wns ∈ [W0 ... W15]
Slit10 ∈ [-512 ... 511] in Byte mode
Slit10 ∈ [-1024 ... 1022] (even only) in Word mode
Wd ∈ [W0 ... W15]
Operation: (Wns) → [Wd + Slit10]
Status Affected: None
Encoding:
1001 1kkk kBkk kddd dkkk ssss
Description: The contents of Wns are stored to [Wd + Slit10]. In Word mode, the range
of Slit10 is increased to [-1024 ... 1022] and Slit10 must be even to
maintain word address alignment. Register direct addressing must be
used for Wns, and indirect addressing must be used for the destination.
The ‘k’ bits specify the value of the literal.
The ‘B’ bit selects byte or word operation (‘0’ for word, ‘1’ for byte).
The ‘d’ bits select the destination register.
The ‘s’ bits select the source register.
Note 1: The extension .B in the instruction denotes a byte move rather
than a word move. You may use a .W extension to denote a
word move, but it is not required.
2: In Byte mode, the range of Slit10 is not reduced as specified in
Section 4.6 “Using 10-bit Literal Operands”, since the literal
represents an address offset from Wd.
Words: 1
Cycles: 1
Example 1:
MOV.B W0, [W1+0x7] ; store W0 to [W1+0x7]
; (Byte mode)
Before
Instruction
After
Instruction
W0 9015 W0 9015
W1 1800 W1 1800
Data 1806 2345 Data 1806 1545
SR 0000 SR 0000

- 1
- 2
…
- 284
- 285
- 286
- 287
- 288
…
- 501
- 502