Сравнение числа из текстовой строки, с dd числом в регистре

Тема в разделе "WASM.BEGINNERS", создана пользователем stellaco, 24 дек 2008.

  1. stellaco

    stellaco New Member

    Публикаций:
    0
    Добрый вечер.
    Возник вот такой вопрос.

    Получаю строку (не уверен, но кажется в UTF-8). И в ней написано что-то наподобие value=1
    и мне нужно сравнить число "1" после знака "=" . С эталоном в регистре ECX

    ;в esi указательно на "1" из строки value=1
    mov ecx, 1
    ;что тут нужно сделать???
    cmp esi, ecx

    чтоб этот код был верен....
     
  2. DarkWanderer

    DarkWanderer New Member

    Публикаций:
    0
    Код (Text):
    1. movzx  eax,byte ptr[esi]
    2. sub eax,30h
     
  3. DarkWanderer

    DarkWanderer New Member

    Публикаций:
    0
    если и правда UTF-8, то сместить на еще один байт.
    да или вообще, cmp word(или byte для ascii) ptr [esi],'код символа'
     
  4. stellaco

    stellaco New Member

    Публикаций:
    0
    DarkWanderer
    Спасибо, сейчас попробую
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    stellaco
    А стоит быть уверенным. Для UTF-8 (или ANSI) это будет сравнение с байтом 31h. Для Unicode со словом 31h. А для Big Endian со словом 3100h. Поэтому примерно так (если стараться максимально придерживаться условий постановки задачи):
    UTF-8 (ANSI)
    mov ecx, 31h
    cmp byte[esi],cl
    Unicode
    mov ecx, 31h
    cmp word[esi],cx
    Big Endian
    mov ecx, 3100h
    cmp word[esi],cx
     
  6. stellaco

    stellaco New Member

    Публикаций:
    0
    И ещё один вопрос...достаточно глупый..
    в чём отличие [esi] и просто esi
    ... [esi] это данные по адресу esi (конкретное число)
    а просто esi...этож вроде воспринимается nasm ..как одно и тоже.....
    появните..в чём не пра..
    и ещё раз извеняюсь. за глупый вопрос)
     
  7. stellaco

    stellaco New Member

    Публикаций:
    0
    l_inc
    Спасибо)

    Это строка передаётся из клиентского веб бразуер.(через простую html форму). На странице стоит следующее <meta content='text/html; charset=UTF-8' http-equiv=Content-Type>
    Значит браузер вышлет текст в UTF-8 ?
     
  8. K10

    K10 New Member

    Публикаций:
    0
    stellaco
    CMP BYTE PTR [ESI], '1'

    так посмотри в отладчике в чем у тебя текст...
     
  9. stellaco

    stellaco New Member

    Публикаций:
    0
    K10
    хех ))) чтото я сходу не додумался до этого )))...


    А насчёт отладчика.
    Это приложение работает на сервере, и является cgi программой. Локально я знаю, как пройтись gdb по файлу, и проверить логику работы..да и ошибочки нахожу частенько. Но как передать входные параметры из браузера, отлаживаемой программе(которая запускается сервером Apache), не знаю =(((
     
  10. K10

    K10 New Member

    Публикаций:
    0
    stellaco
    сохрани в файл весь принятый буфер, и НЕХ-редактором посмотри.
     
  11. stellaco

    stellaco New Member

    Публикаций:
    0
    K10
    Сделаю утром....
    Ещё раз спасибо =)
     
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    чеж вам не спиться то?))))