《3D游戏编程大师技巧》——学习笔记

来源:互联网 发布:linux shell 启动进程 编辑:程序博客网 时间:2024/06/06 07:21

由于 memset() 是以单字节填充,速度偏慢。可由以下代码做多字节填充


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                  ;  移动数据    }}



0 0
原创粉丝点击