; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

    .486                        ; force 32 bit code
    .model flat, stdcall        ; memory model & calling convention
    option casemap :none        ; case sensitive

    szCmp PROTO :DWORD,:DWORD

    .code

; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

align 16

szCmp proc str1:DWORD, str2:DWORD

  ; --------------------------------------
  ; scan zero terminated string for match
  ; --------------------------------------
    push esi
    mov ecx, str1
    mov edx, str2
    xor esi, esi
  cmst:
    mov al, [ecx+esi]
    cmp al, [edx+esi]
    jne no_match
    add esi, 1
    test al, al         ; check for terminator
    jne cmst

    lea eax, [ecx+esi-1]
    sub eax, str1       ; return length on match
    jmp cmpout

  no_match:
    xor eax, eax        ; return zero on no match

  cmpout:
    pop esi
    ret

szCmp endp

; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

end