一些80C51单片机支持双DPTR,C编译器是如何使用它的?

时间:2022-01-04 14:49:54

在C51中,C编译器并不利用双DPTR来优化用户所写的程序,只有一些库例程使用了双数据指针。
当在两个存储器块之间进行数据复制或比较时,以下库例程会使用双数据指针:

memmove
memcpy
memcmp
strcpy
strcmp

在上述库例程中,使用双数据指针可以使性能有一定的提高。

Keil就memcpy库例程在DS80C320和普通单数据指针的80C51CPU进行性能比较,其结果如下:

库例程    操作的字节总数   性能
memcpy     1                     2.4倍
memcpy     10                   3.3倍
memcpy     100                 3.8倍
memcpy     1000               3.9倍