lnstr.asm

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

ASM
47
字号
; #########################################################################

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

    .code

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

lnstr proc lpszString:DWORD

  ; ---------------------------
  ; put length of string in eax
  ; EXCLUDING terminating zero
  ; ---------------------------

      mov eax, lpszString
      xor edx, edx

      jmp @F
      align 4
    @@:
    REPEAT 3
      mov dl, [eax]         ;  1
      inc eax               ;  1
      cmp dl, dh            ;  1
      je @F                 ;  1 when not taken
    ENDM

      mov dl, [eax]         ;  1
      inc eax               ;  1
      cmp dl, dh            ;  1
      jne @B                ;  3 when jmp taken

    @@:

      sub eax, lpszString
      dec eax               ;  correct count
 
      ret

lnstr endp

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

end

⌨️ 快捷键说明

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