cmp из памяти с указателем...

Тема в разделе "WASM.BEGINNERS", создана пользователем Freecod, 2 июл 2007.

  1. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    просто выпадаю от сообственной...

    .data
    pMem dd 0A01000 ; указатель на данные
    .code
    go:
    inc pMem ; inc dword ptr [смещение pMem]
    cmp word ptr [pMem], 0D0Ah
    jmp go

    В pMem указатель на некий массив данных.
    Нужно прошарить данные из массива, а при cmp word ptr [pMem] он сравнивает с содержимым ячейки pMem. Как добратся до данных?!
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    mov eax, [pMem]
    cmp word ptr [eax], xx
     
  3. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Загрузите их адрес в регистр.
    Например командой lea edi, [pMem]
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    И ты получаешь в edi указатель на pMem, тогда как нужно значение.
     
  5. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    0A010000 - конец строки подумал.
     
  6. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    хм. Значит не туплю =) Про регистр - это само-собой, просто думал может покрасивее как-нибудь, в одну команду.
     
  7. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Код (Text):
    1. mov ax,0D0Ah
    2. or ecx,-1
    3. mov edi,pMem
    4. repne scasw
     
  8. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Mikl__
    в твоем коде данне должны быть выровнены по 2 байта, иначе можешь пропусить искомое слово. В условии задачи такое допускается?
     
  9. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    неа, это сплошной (и разный) текст
     
  10. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    Код (Text):
    1. mov al,0Ah
    2. or ecx,-1
    3. mov edi,pMem
    4. @@:
    5. repne scasb
    6. cmp byte ptr [edi],0dh
    7. jnz @b
     
  11. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Если исходная задача состоит в поиске переносов строк, то посмотрите эту тему.
     
  12. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Mikl__
    В коде ошибка (для анси под вынь). и в задаче тоже, если имелось ввиду LF/CR а не наоборот.
     
  13. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    asmfan
    MSoft
    Ступил, пойду сделаю сепуку:dntknw: