home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / asmutil / stdlib.zip / STRCHR.ASM < prev    next >
Assembly Source File  |  1990-07-14  |  856b  |  60 lines

  1. stdlib        segment    para public 'slcode'
  2.         assume    cs:stdlib
  3. ;
  4. ;
  5. ; strchr- Returns the position of a single character in a string.
  6. ;
  7. ; inputs:
  8. ;
  9. ;    al- character to search for.
  10. ;    es:di- address of string.
  11. ;
  12. ; returns: 
  13. ;
  14. ;    cx- position of character in string (if present).
  15. ;    carry=0 if character found.
  16. ;    carry=1 if character is not present in string.
  17. ;
  18.         public    sl_strchr
  19. ;
  20. sl_strchr    proc    far
  21.         pushf
  22.         push    ds
  23.         push    si
  24.         push    ax
  25.         cld
  26. ;
  27.         mov    si, es        ;Setup ds:si to use LODSB
  28.         mov    ds, si
  29.         mov    si, di
  30. ;
  31.         mov    ah, al        ;ah=char to search for.
  32. strchrlp:    lodsb
  33.         cmp    al, ah
  34.         jz    FndChr
  35.         cmp    al, 0
  36.         jne    strchrlp
  37. ;
  38.         xor    cx, cx
  39.         pop    ax
  40.         pop    si
  41.         pop    ds
  42.         popf
  43.         stc
  44.         ret
  45. ;
  46. FndChr:        pop    ax
  47.         mov    cx, si
  48.         sub    cx, di
  49.         dec    cx
  50.         pop    si
  51.         pop    ds
  52.         popf
  53.         clc
  54.         ret
  55. sl_strchr    endp
  56. ;
  57. ;
  58. stdlib        ends
  59.         end
  60.