我调试REP STOS DWORD PTR ES:[EDI]
了一段时间
根据我的结论,它总是使用
ECX
作为计数器。
EAX
作为将被复制EDI
然后附加ECX
时间的值,因此在放入指向的转储之后EDI
它似乎用它似乎总是只使用 ECX 作为计数器,同时将 EDI 更改了 4 个字节来覆盖 EDI 中的指向数据。当计数器达到 0 时它停止工作
所以我想出了这种代码
while(regs.d.ecx != 0)
{
*(unsigned int *)(regs.d.edi) = regs.d.eax;
regs.d.edi += 4;
regs.d.ecx--;
}
似乎工作..但我很担心,因为我只是靠运气和猜测工作做到了这一点。坚固吗?就像它总是ECX
像计数器一样,EAX
像数据一样,它总是复制 4 个字节,永远不会少?