4.8 Special Operators

The assembler provides a set of special operators to assist with address generation for the dsPIC33C/E/F modified-Harvard architectures. The dsPIC33A architecture features a unified address space and these special operators are not required; however, a few of the operators may be useful as noted below.

Table 4-9. Special Operators [DD]
Operators*DescriptionSupport**
tblpage(name)Get page for table read/write operations.33C/33E/33F
tbloffset(name)Get pointer for table read/write operations.33C/33E/33F
psvpage(name)Get page for PSV data window operations.33C/33E/33F
psvoffset(name)Get pointer for PSV data window operations.33C/33E/33F
paddr(label)Get 24-bit address of label in program memory.33C/33E/33F
Get 32-bit address of label in program memory.33A
handle(label)Get 16-bit reference to label in program memory.33C/33E/33F
dmapage(name)Get page suitable for DMA controller.33E
dmaoffset(name)Get offset of a symbol within DMA memory.33F
.sizeof.(name)Get size of section name in address units.All
.startof.(name)Get starting address of section name.All
boot(num)Get address of access slot num in the boot segment..33C/33E/33F
secure(num)Get address of access slot num in the secure segment.33C/33E/33F
edspage(name)Get page for EDS data window operations.33C/33E/33F
edsoffset(name)Get pointer for EDS data window operations.33C/33E/33F
* You cannot use two special operators in an expression.

** All = all devices
; 
33A = dsPIC33A; 33C = dsPIC33C; 33E = dsPIC33E; 33F = dsPIC33F