Vault 7: Projects

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

16-bit MCU and DSC Programmer’s Reference Manual
DS70157F-page 250 © 2005-2011 Microchip Technology Inc.
GOTO
Unconditional Jump
Implemented in: PIC24F PIC24H PIC24E dsPIC30F dsPIC33F dsPIC33E
X X X X X X
Syntax: {label:} GOTO Expr
Operands: Expr may be label or expression (but not a literal).
Expr is resolved by the linker to a lit23, where lit23 [0 ... 8388606].
Operation: lit23 PC
NOP Instruction Register
Status Affected: None
Encoding:
1st word
0000 0100 nnnn nnnn nnnn nnn0
2nd word
0000 0000 0000 0000 0nnn nnnn
Description: Unconditional jump to anywhere within the 4M instruction word program
memory range. The PC is loaded with the 23-bit literal specified in the
instruction. Since the PC must always reside on an even address boundary,
lit23<0> is ignored.
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 (PIC24F, PIC24H, dsPIC30F, dsPIC33F)
4 (PIC24E, dsPIC33E)
Example 1:
026000 GOTO _THERE
026004 MOV W0, W1
. ...
. ...
027844 _THERE: MOV #0x400, W2
027846 ...
; Jump to _THERE
; Code execution
; resumes here
Before
Instruction
After
Instruction
PC 02 6000 PC 02 7844
SR 0000 SR 0000
Example 2:
000100 _code: ...
. ...
026000 GOTO _code+2
026004 ...
; start of code
; Jump to _code+2
Before
Instruction
After
Instruction
PC 02 6000 PC 00 0102
SR 0000 SR 0000

e-Highlighter

Click to send permalink to address bar, or right-click to copy permalink.

Un-highlight all Un-highlight selectionu Highlight selectionh