home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TP_ADV.ZIP / LIST0304.ASM < prev    next >
Encoding:
Assembly Source File  |  1989-11-19  |  1.1 KB  |  41 lines

  1. .MODEL TPASCAL
  2. .CODE
  3.  
  4. StripChar PROC FAR
  5.    PUBLIC StripChar
  6.    ARG InpSt : DWORD, char : BYTE : 2 RETURNS OutSt : DWORD
  7.    LOCAL counter : WORD
  8.  
  9.    push ds
  10.    lds  si, InpSt    ; Load pointer to InpSt into DS:SI
  11.    les  di, OutSt    ; Load pointer to OutSt into ES:DI
  12.    mov  Counter,0    ; Zero out Counter
  13.    lodsb             ; Load length byte into AL
  14.    cmp  al, 0        ; If Length ( InpSt ) = 0
  15.    je   Done         ;   then Quit
  16.    mov  cl, al       ; Move length of InpSt into CX
  17.    xor  ch, ch
  18.    stosb             ; Move length of InpSt into OutSt
  19.  
  20. Looper:
  21.    lodsb             ; Load a new Char from InpSt into AL
  22.    cmp  al, char     ; Is this a char to strip?
  23.    je   BottomOfLoop ;   Yes: Don't add to function result
  24.    stosb             ;   No: Add to OutSt and
  25.    inc  Counter      ;       Increment Counter
  26.  
  27. BottomOfLoop:
  28.    loop Looper       ; If not at end of InpSt, loop again
  29.  
  30. Done:
  31.    mov  ax, Counter  ; Move length of OutSt into AL
  32.    les  di, OutSt    ; Reload OutSt into ES:DI
  33.    stosb             ; Save length of OutSt in OutSt
  34.  
  35.    pop  ds           ; Restore DS
  36.    ret
  37. StripChar ENDP
  38.  
  39. ENDS
  40. END
  41.