This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Copy xdata to xdata

How to copy array xbyte memory from one address(xdata) to another(xdata address) and use autoincrement DPTR to make it faster in Cx51? I have selected "use multiply DPTR register" in projects for target...

for(i=0 ; i<30;i++){
XBYTE[baseaddress1+i]=XBYTE[baseaddress2+i];
} This code is to slow.
Thanks for help.

Parents
  • I don't use C51 but note that some compilers produces better (or even way better) code when the loop does not perform indexing, i.e you do:

    for (i = 0; i < 30; i++) {
        *dst++ = *src++;
    }
    


    insteaad of:

    for (i = 0; i < 30; i++) {
        dst[i] = src[i];
    }
    

    By the way - there are special tags to use when posting source code.
    And the tags are clearly described directly above the text input box.

Reply
  • I don't use C51 but note that some compilers produces better (or even way better) code when the loop does not perform indexing, i.e you do:

    for (i = 0; i < 30; i++) {
        *dst++ = *src++;
    }
    


    insteaad of:

    for (i = 0; i < 30; i++) {
        dst[i] = src[i];
    }
    

    By the way - there are special tags to use when posting source code.
    And the tags are clearly described directly above the text input box.

Children