mov [edi],al

Тема в разделе "WASM.BEGINNERS", создана пользователем XshStasX, 23 май 2010.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    в edi содержатся указатель на массив
    data?
    BUF dd 64 dup(?)
    в отладчике (олька) дохожу к команде
    mov [edi],al
    и при выполнении этой команды записи по адресу не происходит( и ошибки тоже нету.
    Так вот в чем причина такого поведения ??
     
  2. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    точнее команда *
    mov byte ptr [edi],al
     
  3. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    XshStasX
    Битву экстрасенсов смотрите на канале ТНТ.
     
  4. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    edi ссылается на какой-то другой адрес памяти, доступный для записи. Почему так происходит разъяснит исходный код или экстрасенс, как предложил KeSqueer :).
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    код покажите без него невозможно
     
  6. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Код (Text):
    1. copystr proc
    2.  push ebp
    3.  mov ebp,esp
    4.  push esi
    5.  push edi
    6.  push ecx
    7.  push eax
    8.    mov ecx,[ebp+16] ; length
    9.    mov esi,[ebp+12]
    10.    mov edi,[ebp+8] ;приемник
    11.   @rep:
    12.    mov al,byte ptr[esi]
    13.    mov byte ptr[ edi],al
    14.    dec ecx
    15.    inc esi
    16.    inc edi
    17.    cmp ecx,0
    18.   jne @rep
    19.  pop eax
    20.  pop ecx
    21.  pop edi
    22.  pop esi
    23.  pop ebp
    24.  ret 12
    25. copystr endp
    А вызов так делаю:
    Код (Text):
    1. push offset File1
    2.  call copystr
     
  7. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    именно что ссылается он на нужный адрес в ольке это прекрасно видно, пишет не понятно куда или совсем не пишет.(
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    XshStasX
    Нужно есчо указать откуда копировать и размер блока.
    Вот этому коду:
    Код (Text):
    1. @rep:
    2.    mov al,byte ptr[esi]
    3.    mov byte ptr[ edi],al
    4.    dec ecx
    5.    inc esi
    6.    inc edi
    7.    cmp ecx,0
    8.   jne @rep
    есть эквивалент cld/rep movsb.
     
  9. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    да даже то что есть в регистре al не копируется (
    полный вызов вот такой
    Код (Text):
    1.  mov ecx,512 ;максимальная длина строки
    2.   mov al,34 ;кавычка
    3.  repnz scasb
    4.  mov esi,edi
    5.  repnz scasb
    6.  mov ecx,edi
    7.  sub ecx,esi
    8.  push ecx
    9.  push esi
    10.  push offset File1
    11.  call copystr
    знаю, но сними таже проблема !(((
    по этому тот код заменил более простым...
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    XshStasX
    Когда Ip = @rep что находится в Esi и Edi ?
     
  11. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    вот ссылка на сам ехе http://files.mail.ru/R6NH53
    по адресу 00401369 и происходит проблема(...
    ехе нужно запускать с 3 параметрами командной строки "1" "1" "3"
     
  12. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    спасибо всем я уже разобрался...
    єто я затупил очень...там в edi 403150 а я смотрю 401350...
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    XshStasX
    Ага, тоже так подумал)
     
  14. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Почему не lodsb?
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    JCronuz
    Сосредоточтесь.
     
  16. 00h

    00h New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    27
    Я только не пойму, почему для перемещения блока памяти rep *** сложнее?