Keil™, An ARM® Company

Cx51 User's Guide

NXP and Atmel Dual DPTR

NXP Semiconductors and Atmel Wireless and Microcontrollers provide several compatible 8051 variants with dual data pointers. Using multiple data pointers can improve the speed of library functions like memcpy, memmove, memcmp, strcpy, and strcmp.

The MODP2 directive instructs the Cx51 Compiler to generate code that uses both data pointers in your program.

The Cx51 Compiler uses at least one data pointer in an interrupt function. If an interrupt function is compiled using the MODP2 directive, both data pointers are saved on the stack - this happens even if the interrupt function uses only one data pointer.

To conserve stack space, you may compile interrupt functions with the NOMODP2 directive to prevent the Cx51 Compiler from using the second data pointer.