ltrim.asm

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

ASM
54
字号
; ########################################################################

  ;  --------------------------------------------------------
  ;  This module has been optimised by Alexander Yackubtchik
  ;  --------------------------------------------------------

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

    .code

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

ltrim proc source:DWORD,dest:DWORD

    push esi
    push edi

    mov esi, source
    mov edi, dest

    cld             ; read forward

    @@:
      lodsb
      cmp al, 0     ; exit on zero
      je ltOut_Label
      cmp al, 32    ; loop if space
      je @B
      cmp al, 9     ; loop if tab
      je @B
      stosb

    @@:
      lodsb
      cmp al, 0     ; exit on zero
      je ltOut_Label
      stosb
      jmp @B

    ltOut_Label:
      stosb         ; write terminating zero

      pop edi
      pop esi

    ret

ltrim endp

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

end

⌨️ 快捷键说明

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