# Vault 7: Projects

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

### Protego

# PIC24FJ64GA004 - Programmers Reference Manual

- 1
- 2
…
- 416
- 417
- 418
- 419
- 420
…
- 501
- 502

16-bit MCU and DSC Programmer’s Reference Manual
DS70157F-page 418 © 2005-2011 Microchip Technology Inc.
SUBBR
Subtract Wb from Short Literal with Borrow
Implemented in: PIC24F PIC24H PIC24E dsPIC30F dsPIC33F dsPIC33E
X X X X X X
Syntax: {label:} SUBBR{.B} Wb, #lit5, Wd
[Wd]
[Wd++]
[Wd--]
[++Wd]
[--Wd]
Operands: Wb ∈ [W0 ... W15]
lit5 ∈ [0 ... 31]
Wd ∈ [W0 ... W15]
Operation: lit5 – (Wb) – (C
) → Wd
Status Affected: DC, N, OV, Z, C
Encoding: 0001 1www wBqq qddd d11k kkkk
Description: Subtract the contents of the base register Wb and the Borrow flag (Carry
flag inverse, C
) from the 5-bit unsigned literal and place the result in the
destination register Wd. Register direct addressing must be used for Wb.
Register direct or indirect addressing must be used for Wd.
The ‘w’ bits select the address of the base register.
The ‘B’ bit selects byte or word operation (‘0’ for word, ‘1’ for byte).
The ‘q’ bits select the destination Address mode.
The ‘d’ bits select the destination register.
The ‘k’ bits provide the literal operand, a five-bit integer number.
Note 1: 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.
2: The Z flag is “sticky” for ADDC, CPB, SUBB and SUBBR.
These instructions can only clear Z.
Words: 1
Cycles: 1
Example 1:
SUBBR.B W0, #0x10, W1 ; Sub. W0 and C from 0x10 (Byte mode)
; Store result to W1
Before
Instruction
After
Instruction
W0 F310 W0 F310
W1 786A W1 7800
SR 0003 (Z, C = 1) SR 0103 (DC, Z, C = 1)

- 1
- 2
…
- 416
- 417
- 418
- 419
- 420
…
- 501
- 502