Microchip Technology DV164136 Data Sheet
2007-2012 Microchip Technology Inc.
DS39778E-page 99
PIC18F87J11 FAMILY
7.3
Reading the Flash Program
Memory
Memory
The TBLRD instruction is used to retrieve data from
program memory and places it into data RAM. Table
reads from program memory are performed one byte at
a time.
program memory and places it into data RAM. Table
reads from program memory are performed one byte at
a time.
TBLPTR points to a byte address in program space.
Executing TBLRD places the byte pointed to into
TABLAT. In addition, TBLPTR can be modified
automatically for the next table read operation.
The internal program memory is typically organized by
words. The Least Significant bit of the address selects
between the high and low bytes of the word.
Executing TBLRD places the byte pointed to into
TABLAT. In addition, TBLPTR can be modified
automatically for the next table read operation.
The internal program memory is typically organized by
words. The Least Significant bit of the address selects
between the high and low bytes of the word.
shows the interface between the internal program
memory and the TABLAT.
memory and the TABLAT.
FIGURE 7-4:
READS FROM FLASH PROGRAM MEMORY
EXAMPLE 7-1:
READING A FLASH PROGRAM MEMORY WORD
TBLRD
TBLPTR = xxxxx1
FETCH
TBLPTR = xxxxx0
(Even Byte Address)
Program Memory
(Odd Byte Address)
TABLAT
Read Register
Instruction Register
(IR)
MOVLW
CODE_ADDR_UPPER
; Load TBLPTR with the base
MOVWF
TBLPTRU
; address of the word
MOVLW
CODE_ADDR_HIGH
MOVWF
TBLPTRH
MOVLW
CODE_ADDR_LOW
MOVWF
TBLPTRL
READ_WORD
TBLRD*+
; read into TABLAT and increment
MOVF
TABLAT, W
; get data
MOVWF
WORD_EVEN
TBLRD*+
; read into TABLAT and increment
MOVF
TABLAT, W
; get data
MOVWF
WORD_ODD