English
Language : 

PIC16LF18854 Datasheet, PDF (36/668 Pages) Microchip Technology – C Compiler Optimized RISC Architecture
PIC16(L)F18856/76
FIGURE 3-1:
PROGRAM MEMORY MAP
AND STACK FOR
PIC16(L)F18856/76
PC<14:0>
CALL, CALLW
RETURN, RETLW
15
Interrupt, RETFIE
Stack Level 0
Stack Level 1
Rev. 10-000040I
11/2/2015
Stack Level 15
Reset Vector
0000h
On-chip
Program
Memory
Interrupt Vector
Page 0
0004h
0005h
07FFh
0800h
0FFFh
1000h
17FFh
1800h
1FFFh
2000h
3FFFh
4000h
Unimplemented
7FFFh
3.1.1
READING PROGRAM MEMORY AS
DATA
There are two methods of accessing constants in
program memory. The first method is to use tables of
RETLW instructions. The second method is to set an
FSR to point to the program memory.
3.1.1.1 RETLW Instruction
The RETLW instruction can be used to provide access
to tables of constants. The recommended way to create
such a table is shown in Example 3-1.
EXAMPLE 3-1:
constants
BRW
RETLW DATA0
RETLW DATA1
RETLW DATA2
RETLW DATA3
RETLW INSTRUCTION
;Add Index in W to
;program counter to
;select data
;Index0 data
;Index1 data
my_function
;… LOTS OF CODE…
MOVLW
DATA_INDEX
call constants
;… THE CONSTANT IS IN W
The BRW instruction makes this type of table very
simple to implement. If your code must remain portable
with previous generations of microcontrollers, the older
table read method must be used because the BRW
instruction is not available in some devices.
DS40001824A-page 36
Preliminary
 2016 Microchip Technology Inc.