траблы с InString

Тема в разделе "WASM.WIN32", создана пользователем xsnatch, 20 авг 2004.

  1. xsnatch

    xsnatch New Member

    Публикаций:
    0
    Регистрация:
    24 апр 2004
    Сообщения:
    8
    Код (Text):
    1. invoke InString,1,ADDR szMainString,ADDR szSubString


    если szSubString > szMainString, то в eax возвращается корявый символ, как этого избежать?





    Вот листинг:
    Код (Text):
    1. .data
    2. szSubString     db "masm32",0
    3. szMainString    db "masm",0
    4.  
    5. .code
    6. start:
    7. invoke InString,1,ADDR szMainString,ADDR szSubString
    8.  .IF eax >=1
    9. invoke MessageBox, 0, addr szMainString, addr szSubString, MB_OK
    10.  .ENDIF
    11. invoke ExitProcess,0
    12. END start
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    xsnatch

    "... InString searches for a substring in a larger string ..."

    "... Return Values.

    -1 = substring same length or longer than main string ..."

    Вот.
     
  3. xsnatch

    xsnatch New Member

    Публикаций:
    0
    Регистрация:
    24 апр 2004
    Сообщения:
    8
    Quantum, если даже "-1" - ".IF eax >=1" все равно не работает.
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    xsnatch



    Это беззнаковое сравнение. Ох уж эти макросы :-(
    Код (Text):
    1. .data
    2. szSubString     db "masm32",0
    3. szMainString    db "masm",0
    4.  
    5. .code
    6. start:
    7.    invoke InString,1,ADDR szMainString,ADDR szSubString
    8.    cmp eax,1
    9. jl @F
    10.    invoke MessageBox, 0, addr szMainString, addr szSubString, MB_OK
    11. @@:
    12.    invoke ExitProcess,0
    13. END start
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    [ Quantum: Ох уж эти макросы :-( ]



    Ох уж эти мне cmp/jсс :derisive:


    Код (Text):
    1. .if sdword ptr eax >=1