rep stos dword ptr [edi]

来源:互联网 发布:学电脑模具编程 编辑:程序博客网 时间:2024/05/22 05:21

引用一篇http://apps.hi.baidu.com/share/detail/11140897
rep 为repeat 重复之意stos 为store 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是传参的大小。

要说代价的话,那真的是很小很小的


原创粉丝点击