# Vault 7: Projects

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

### Protego

# PIC24FJ64GA004 - Programmers Reference Manual

- 1
- 2
…
- 212
- 213
- 214
- 215
- 216
…
- 501
- 502

16-bit MCU and DSC Programmer’s Reference Manual
DS70157F-page 214 © 2005-2011 Microchip Technology Inc.
CPSNE
Signed Compare Wb with Wn, Skip if Not Equal (Wb ≠ Wn)
Implemented in: PIC24F PIC24H PIC24E dsPIC30F dsPIC33F dsPIC33E
X X X X
Syntax: {label:} CPSNE{.B} Wb, Wn
Operands: Wb ∈ [W0 ... W15]
Wn ∈ [W0 ... W15]
Operation: (Wb) – (Wn)
Skip if (Wb) ≠ (Wn)
Status Affected: None
Encoding: 1110 0111 0www wB00 0000 ssss
Description: Compare the contents of Wb with the contents of Wn by performing the
subtraction (Wb) – (Wn), but do not store the result. If (Wb) ≠ (Wn), the next
instruction (fetched during the current instruction execution) is discarded
and on the next cycle, a NOP is executed instead. Otherwise, the next
instruction is executed as normal.
The ‘w’ bits select the address of the Wb source register.
The ‘B’ bit selects byte or word operation (‘0’ for word, ‘1’ for byte).
The ‘s’ bits select the address of the Wn source register.
Note: The extension .B in the instruction denotes a byte operation
rather than a word operation. You may use a .W extension to
denote a word operation, but it is not required.
Words: 1
Cycles: 1 (2 or 3 if skip taken)
Example 1:
002000 HERE: CPSNE.B W2, W3 ; If W2 != W3 (Byte mode),
002002 GOTO BYPASS ; skip the GOTO
002006 . . .
002008 . . .
00200A BYPASS: . . .
00200C . . .
Before
Instruction
After
Instruction
PC 00 2000 PC 00 2006
W2 00FF W2 00FF
W3 26FE W3 26FE
SR 0001 (C = 1) SR 0001 (C = 1)
Example 2:
018000 HERE: CPSNE W0, W8 ; If W0 != W8 (Word mode),
018002 CALL _FIR ; skip the subroutine call
018006 ...
018008 ...
Before
Instruction
After
Instruction
PC 01 8000 PC 01 8002
W0 3000 W0 3000
W8 3000 W8 3000
SR 0000 SR 0000

- 1
- 2
…
- 212
- 213
- 214
- 215
- 216
…
- 501
- 502