/********************************************\
|????歡迎轉(zhuǎn)載, 但請(qǐng)保留作者姓名和原文鏈接, 祝您進(jìn)步并共勉!???? |
\********************************************/
比庫(kù)函數(shù)memcpy還高效的memcopy - 美妙的內(nèi)嵌匯編
作者: Jerry Cat
時(shí)間: 2006/04/27
鏈接:?http://www.shnenglu.com/jerysun0818/archive/2006/04/27/6392.html
#ifdef __cplusplus
extern "C"
#endif
void *(* memcopy)( void *dest , void *src , int n );
void *memcopy_dword(void *dest, void *src, int n)
{
??? _asm {
??????? mov esi, src
??????? mov edi, dest
??????? mov ecx, n
??????? mov ebx, ecx
??????? and ecx, 3
??????? rep movsb
??????? mov ecx, ebx
??????? shr ecx, 2
??????? rep movsd
??? }
??? return dest;
}
void memcopy_init() {
? memcopy=memcopy_dword;
}
/* 數(shù)據(jù)量小但使用頻繁的memcpy之內(nèi)嵌匯編內(nèi)聯(lián)版 */
__inline void fbcopy( void *d, void *s, int i)
{
??? _asm {
??????? mov ecx, i
??????? mov esi, s
??????? mov edi, d
??????? rep movsb
??? }
}
posted on 2006-04-27 19:38
Jerry Cat 閱讀(5486)
評(píng)論(3) 編輯 收藏 引用