c语言数组赋值执行效率有关问题

c语言数组赋值执行效率问题
2个数组:
    int dst[5000],src[5000];

直接做对应下标赋值运算,即:
    dst[i] = src[i];
结果执行很慢;

但是直接执行
    dst[i] = 10; 
就非常快;

执行
    value = src[i];
执行很快;但,
    dst[i] = value;
又会很慢;

请问怎么能够快速完成类似操作?

谢谢!
------解决思路----------------------
引用:
2个数组:
    int dst[5000],src[5000];

直接做对应下标赋值运算,即:
    dst[i] = src[i];
结果执行很慢;

但是直接执行
    dst[i] = 10; 
就非常快;

执行
    value = src[i];
执行很快;但,
    dst[i] = value;
又会很慢;

请问怎么能够快速完成类似操作?

谢谢!

看来楼主对c理解还是不行,这个快慢的问题80%涉及到到底 是从内存中取值之后赋值,还是直接从cpu附近的寄存器中取值
前者很慢,后者很快,这个反汇编一下自然就明白
比如 dst[i] = 10; //立即数10存在寄存器eax中,直接就赋值,自然就块
     dst[i] = src[i];//一般都是先从内存中取值付给寄存器,比如把src[i]中的值付给eax,然后eax在赋值给dst[i]
----------------------------------------------------------------------------------------
同理
  value = src[i];   //因为之前有对src[i]的操作,不如上面 dst[i]=src[i], src[i]的值已经存入寄存器eax了,所以,这里编译器直接就把                    eax的值存给value,所以快
dst[i] = value; //当然 先从内存中取值给寄存器,然后在赋值给dst[i],所以慢
------------------------------------------------------------------------------------------------------
总结:
快慢原因: ①分几步赋值
              ②从内存中读值很慢,因为cpu需要通过总线访问内存,而寄存器在cpu旁边说拿就拿,所以两种方式的效率很明显,
                 当然现在的cpu性能比较好,差距不是很明显

------解决思路----------------------
汇编面前,了无秘密:


http://www.microsoft.com/visualstudio/chs/downloads#d-2010-express
点开Visual C++ 2010 Express下面的语言选‘简体中文’,再点立即安装

再参考
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\intel\memcpy.asm