Код (Text): invoke InString,1,ADDR szMainString,ADDR szSubString если szSubString > szMainString, то в eax возвращается корявый символ, как этого избежать? Вот листинг: Код (Text): .data szSubString db "masm32",0 szMainString db "masm",0 .code start: invoke InString,1,ADDR szMainString,ADDR szSubString .IF eax >=1 invoke MessageBox, 0, addr szMainString, addr szSubString, MB_OK .ENDIF invoke ExitProcess,0 END start
xsnatch "... InString searches for a substring in a larger string ..." "... Return Values. -1 = substring same length or longer than main string ..." Вот.
xsnatch Это беззнаковое сравнение. Ох уж эти макросы :-( Код (Text): .data szSubString db "masm32",0 szMainString db "masm",0 .code start: invoke InString,1,ADDR szMainString,ADDR szSubString cmp eax,1 jl @F invoke MessageBox, 0, addr szMainString, addr szSubString, MB_OK @@: invoke ExitProcess,0 END start