home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TOOLS4.ZIP / UCASE.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-07-08  |  841 b   |  46 lines

  1. CODE      SEGMENT BYTE PUBLIC
  2.           ASSUME CS:CODE
  3.  
  4.           PUBLIC UpperCase
  5.  
  6. ;function UpperCase(S : String) : String
  7.  
  8. UpperRes         EQU   DWORD PTR [BP+0Ah]
  9. UpperStr         EQU   DWORD PTR [BP+06h]
  10.  
  11. UpperCase        PROC FAR
  12.  
  13.        PUSH      BP
  14.        MOV       BP,SP
  15.        PUSH      DS
  16.        LDS       SI,UpperStr
  17.        LES       DI,UpperRes
  18.        CLD
  19.        LODSB
  20.        STOSB
  21.        MOV       CL,AL
  22.        XOR       CH,CH
  23.        JCXZ      ExitCode
  24.  
  25. LowerLoop:
  26.        LODSB
  27.        CMP       AL,'a'
  28.        JB        CopyChar
  29.        CMP       AL,'z'
  30.        JA        CopyChar
  31.        SUB       AL,'a'-'A'
  32.  
  33. CopyChar:
  34.        STOSB
  35.        LOOP      LowerLoop
  36.  
  37. ExitCode:
  38.        POP       DS
  39.        POP       BP
  40.        RET       04h
  41.  
  42. UpperCase        ENDP
  43.  
  44. CODE     ENDS
  45.          END
  46.