AMD 80C521 Family

The AMD 80C521 family (80C521, 80C321, and 80C541) provides you with 2 data pointers which can be used to improve memory access. Using multiple data pointers can improve the execution of library functions such as: memcpy, memmove, memcmp, strcpy, and strcmp.

The MODAMD control directive instructs C51 to generate code that utilizes the advanced features of the 80C521.

C51 must use at least one of the data pointers of the 80C521 in an interrupt function. If an interrupt function is compiled using the MODAMD(DP2) directive, both data pointers of the 80C521 are saved on the stack. This is performed even if the interrupt function uses only one of the data pointers. Compile interrupt functions with the NOMODAMD directive. This saves program memory as well as data memory and accelerates the execution of interrupt functions.