в edi содержатся указатель на массив data? BUF dd 64 dup(?) в отладчике (олька) дохожу к команде mov [edi],al и при выполнении этой команды записи по адресу не происходит( и ошибки тоже нету. Так вот в чем причина такого поведения ??
edi ссылается на какой-то другой адрес памяти, доступный для записи. Почему так происходит разъяснит исходный код или экстрасенс, как предложил KeSqueer .
Код (Text): copystr proc push ebp mov ebp,esp push esi push edi push ecx push eax mov ecx,[ebp+16] ; length mov esi,[ebp+12] mov edi,[ebp+8] ;приемник @rep: mov al,byte ptr[esi] mov byte ptr[ edi],al dec ecx inc esi inc edi cmp ecx,0 jne @rep pop eax pop ecx pop edi pop esi pop ebp ret 12 copystr endp А вызов так делаю: Код (Text): push offset File1 call copystr
именно что ссылается он на нужный адрес в ольке это прекрасно видно, пишет не понятно куда или совсем не пишет.(
XshStasX Нужно есчо указать откуда копировать и размер блока. Вот этому коду: Код (Text): @rep: mov al,byte ptr[esi] mov byte ptr[ edi],al dec ecx inc esi inc edi cmp ecx,0 jne @rep есть эквивалент cld/rep movsb.
да даже то что есть в регистре al не копируется ( полный вызов вот такой Код (Text): mov ecx,512 ;максимальная длина строки mov al,34 ;кавычка repnz scasb mov esi,edi repnz scasb mov ecx,edi sub ecx,esi push ecx push esi push offset File1 call copystr знаю, но сними таже проблема !((( по этому тот код заменил более простым...
вот ссылка на сам ехе http://files.mail.ru/R6NH53 по адресу 00401369 и происходит проблема(... ехе нужно запускать с 3 параметрами командной строки "1" "1" "3"