본문 바로가기

Windows/MFC

mmxmemcpy

- from devpia
[code]
void mmxmemcpy(LPVOID pvDest, LPVOID pvSrc, int nCount)
{
    __asm {
        // ecx < 8-bite count
        mov     ecx, nCount
        shr     ecx, 3
        test    ecx, ecx
        jz     short _toend
        ;push    eax
        ;push    ebx
        push    edx

        // edx <- destination
        mov     ebx, pvSrc
        mov     edx, pvDest
        mov     eax, 0

        _loop00 :
        movq    mm0, [ebx+eax*8]
        movq    [edx+eax*8], mm0
        inc     eax
        loop    _loop00

        emms
        pop     edx
        ;pop     ebx
        ;pop     eax
        _toend :
    }
}
[/code]