引用一篇http://apps.hi.baidu.com/share/detail/11140897
rep 为repeat 重复之意 stos 为sotre string 保存字符串之意 ptr 为pointer 指针之意
00401060 push ebp
00401061 mov ebp,esp
00401063 sub esp,40h
00401066 push ebx
00401067 push esi
00401068 push edi
00401069 lea edi,[ebp-40h]
0040106C mov ecx,10h ;rep的次数 10h*4=40h
00401071 mov eax,0CCCCCCCCh
00401076 rep stos dword ptr [edi] ;把栈空间初始化为eax的内容(0CCCCCCCCh)
从累加器EAX传送4个字节,到由EDI作为指针的目的串中,同时修改EDI以指向串中的下一个单
元。利用重复操作可以在串在建立一串相同的值。此指令对标志位无影响。
这里提下__cdecl 与 __stdcall
两者的差别很小,就是__stdcall:被调用的函数在返回前清理传送参数的内存栈。而__cdecl 不做。
在代码上差异就是一条指令:add esp,4
这里的4是传参的大小。
要说代价的话,那真的是很小很小的