在C51中,C编译器并不利用双DPTR来优化用户所写的程序,只有一些库例程使用了双数据指针。
当在两个存储器块之间进行数据复制或比较时,以下库例程会使用双数据指针:
memmove
memcpy
memcmp
strcpy
strcmp
memcpy
memcmp
strcpy
strcmp
在上述库例程中,使用双数据指针可以使性能有一定的提高。
Keil就memcpy库例程在DS80C320和普通单数据指针的80C51CPU进行性能比较,其结果如下:
库例程 操作的字节总数 性能
memcpy 1 2.4倍
memcpy 10 3.3倍
memcpy 100 3.8倍
memcpy 1000 3.9倍
memcpy 1 2.4倍
memcpy 10 3.3倍
memcpy 100 3.8倍
memcpy 1000 3.9倍