memset方法是以单字节真充的,速度并不快,改进这:
1. 一次填充4个字节和一次填充2个字节
inline
void
memset_QUAD(
void
*
dest,UINT data,
int
count)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
_asm
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
mov edi,dest;//edi指向目标内存
mov ecx,count;//要移动32位数字
mov eax,data;//32位数据
rep stosd ;//移动数据
}
}
inline
void
memset_WORD(
void
*
dest,USHORT data,
int
count)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
_asm
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
mov edi,dest;//edi指向目标内存
mov ecx,count;//要移动16位数字
mov ax,data;//16位数据
rep stosd;//移动数据
}
}