『3 Dゲームプログラミングマスターテクニック』——学習ノート


memset()は1バイトで埋め込まれているため、速度が遅い.次のコードでマルチバイト入力できます.
32ビット数充填
inline void Mem_Set_QUAD(void * dest, UINT data, int count)
{
    //       32     
    // count   QUAD   
    _asm
    {
        mov edi, dest              ;  edi      
        mov ecx, count             ;      32   
        mov eax, data              ;  32    
        rep stosd                  ;      
    }
}

16桁の入力
inline void Mem_Set_WORD(void * dest, USHORT data, int count)
{
    //       16     
    // count   WORD   
    _asm
    {
        mov edi, dest              ;  edi      
        mov ecx, count             ;      32   
        mov ax, data               ;  32    
        rep stosw                  ;      
    }
}