home *** CD-ROM | disk | FTP | other *** search
- CLD ;ASSUME FORWARD
- MOV AL,<CH[BP] ;CHAR TO SEARCH FOR
- MOV CX,<LIMIT[BP] ;BYTES TO SEARCH
- OR CX,CX ;CHECK SIGN
- PUSHF ;SAVE FLAGS
- JNS X1
- NEG CX ;MAKE POSITIVE
- STD ;BUT SEARCH IN REVERSE
- X1: MOV DX,CX ;SAVE FULL COUNT
- LES DI,<T[BP] ;PTR TO START
- REPNE: SCASB ;SEARCH
- JNE X2
- INC CX ;FOUND A MATCH
- X2: SUB DX,CX ;FIND COUNT TO MATCH
- POPF
- JNS X3
- NEG DX ;MAKE NEGATIVE IF REVERSE
- X3: MOV [BP+$C],DX ;PUT IN FUNCTION RESULT