Я отлаживал REP STOS DWORD PTR ES: [EDI]
какое-то время
Из моего заключения он всегда использует
ECX
как счетчик.
EAX
как значение, которое будет скопировано в EDI
, а затем добавлено ECX
раз {{ 1}} поэтому после помещения указанного дампа EDI
кажется, что указанные данные в EDI перезаписываются тем, что кажется, что он всегда использует только ECX в качестве счетчика, при изменении EDI на 4 байтов. он перестает работать, когда счетчик достигает 0
Итак, я придумал такой код
while(regs.d.ecx != 0)
{
*(unsigned int *)(regs.d.edi) = regs.d.eax;
regs.d.edi += 4;
regs.d.ecx--;
}
Кажется, работает ... но меня беспокоит, так как я сделал это просто по счастливой случайности и предположениям. Он твердый? как всегда будет ECX
как счетчик, EAX
как данные, и он всегда копирует 4 байта, не меньше?