/*///
函数解释:将s中前n个字节替换为ch并返回s;
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。
///*/
#include "stdafx.h"
void *pmemset(void *s , char ch , int n);
int main(int argc, char* argv[])
{
char a[20];
printf("%s\n",a);
pmemset(a,'a',10);
printf("%s\n",a);
return 0;
}
void *pmemset(void *s , char ch , int n)
{
char *temp_s=(char *)s;
while (n--)
{
*temp_s=ch;
temp_s++;
}
return s;
}
代码很简单,每天坚持,确实可以感受到明显的进步,特备是反汇编分析能力。加油!!
release编译,OD载入分析如下:
在release编译模式下,rep stos 配合填充,可以使dword 、byte快速初始化。
00401000 /$ 83EC 14 sub esp,14 ; 开辟14h(20)字节大小的