lcase.asm

来自「工欲善其事」· 汇编 代码 · 共 44 行

ASM
44
字号
; #########################################################################

;    ---------------------------------------------------------------
;    Part of this module has been optimised by Alexander Yackubtchik
;    ---------------------------------------------------------------

      .486
      .model flat, stdcall  ; 32 bit memory model
      option casemap :none  ; case sensitive

    .code

; #########################################################################

lcase proc text:DWORD

  ; -----------------------------
  ; converts string to lower case
  ; invoke lcase,ADDR szString
  ; -----------------------------

    mov edx, text

  lcSt:
    mov al, [edx]       ; load byte into al
    cmp al, "A"
    jb @F               ; jump if less than ascii "A"
    cmp al, "Z"
    ja @F               ; jump if greater than ascii "Z"
    add al, 32          ; else if uppercase, add 32 to make lowercase
  @@:
    mov [edx], al       ; write byte to address in edx
    lea edx, [edx + 1]  ; increment byte position in edx
    cmp al, 0           ; exit on zero terminator
    jne lcSt

    ret

lcase endp

; #########################################################################

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?