求助】请高手分析下这段简单的代码. rep movs ......
在子程序开头.
mov esi, dword ptr [ebp+8]
lea edi, dword ptr [ebp-48]
push ecx
mov ecx, 0f
rep movs dword ptr es:[edi], dword ptr [esi]
pop ecx
esi装的好像是传入的参数.
edi是不是就是ebp-48这个值啊? 也就是局部数组的首地址?
那为什么后面的rep指令中要用es:[edi]? edi不是在堆栈中吗? 为什么要es开头. 这样数据是不是就没有传入到堆栈中啊? 还有一些代码我也发现地址是ebp-8, 即堆栈中, 但MOV时, 前面却加的是ds:[esi], 为什么是ds前缀?
为什么是加es, ds的前缀哪? 不应该是堆栈中吗? 另外edi中是不是装的就是ebp-48这个值? 谢谢