# Vault 7: Projects

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

### Protego

# PIC24FJ64GA004 - Programmers Reference Manual

- 1
- 2
…
- 175
- 176
- 177
- 178
- 179
…
- 501
- 502

© 2005-2011 Microchip Technology Inc. DS70157F-page 177
Section 5. Instruction Descriptions
Instruction
Descriptions
5
CALL
Call Subroutine
Implemented in: PIC24F PIC24H PIC24E dsPIC30F dsPIC33F dsPIC33E
X X X X
Syntax: {label:} CALL Expr
Operands:
Expr may be a label or expression (but not a literal).
Expr is resolved by the linker to a lit23, where lit23 ∈ [0 ... 8388606].
Operation:
(PC) + 4 → PC
(PC<15:0>) → (TOS)
(W15) + 2 → W15
(PC<23:16>) → (TOS)
(W15) + 2 → W15
lit23 → PC
NOP → Instruction Register
Status Affected:
None
Encoding:
1st word 0000 0010 nnnn nnnn nnnn nnn0
2nd word 0000 0000 0000 0000 0nnn nnnn
Description: Direct subroutine call over the entire 4-Mbyte instruction program
memory range. Before the CALL is made, the 24-bit return address
(PC + 4) is PUSHed onto the stack. After the return address is
stacked, the 23-bit value ‘lit23’ is loaded into the PC.
The ‘n’ bits form the target address.
Note: The linker will resolve the specified expression into the lit23 to
be used.
Words:
2
Cycles:
2
Example 1:
026000 CALL _FIR
026004 MOV W0, W1
. ...
. ...
026844 _FIR: MOV #0x400, W2
026846 ...
; Call _FIR subroutine
; _FIR subroutine start
Before
Instruction
After
Instruction
PC 02 6000 PC 02 6844
W15 A268 W15 A26C
Data A268 FFFF Data A268 6004
Data A26A FFFF Data A26A 0002
SR 0000 SR 0000

- 1
- 2
…
- 175
- 176
- 177
- 178
- 179
…
- 501
- 502