[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]

{*****************************************************************************
 * Function ...... Left()
 * Purpose ....... To return the left part of a string
 * Parameters .... s         String to return the left part of
 *                 n         Number of characters to return
 * Returns ....... A string containing the <n> leftmost characters of <n>.
 * Notes ......... None
 * Author ........ Martin Richardson
 * Date .......... October 2, 1992
 *****************************************************************************}
FUNCTION Left( s: STRING; n: BYTE ): STRING; ASSEMBLER;
ASM
      PUSH    DS

      LES     DI, @Result
      LDS     SI, s
      MOV     AL, n
      CLD
      XOR     CX, CX

      MOV     CL, BYTE PTR [SI]
      INC     SI
      CMP     CX, 0
      JZ      @@2
      CMP     AL, 0
      JLE     @@1

      MOV    BYTE PTR ES:[DI], AL
      INC    DI
      MOV    CL, AL

      REP    MOVSB
      JMP    @@3

@@1:  MOV     CL, 0
@@2:  MOV     ES:[DI],CL

@@3:  POP     DS
END;
       

[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]