I tried to convert one function from masm32.lib into fasm but I got some weird error "invalid value". Do tell me what went wrong. Thank you.
proc atodw, String
; ----------------------------------------
; Convert decimal string into dword value
; return value in eax
; ----------------------------------------
push esi
push edi
xor eax, eax
mov esi, [String]
xor ecx, ecx
xor edx, edx
mov al, [esi]
inc esi
cmp al, 2Dh
jnz hmm ;<- the error here
mov al, byte ptr [esi]
not edx
inc esi
jmp hmm
@@:
sub al, 30h
lea ecx, dword [ecx+4*ecx]
lea ecx, dword [eax+2*ecx]
mov al, byte [esi]
inc esi
hmm:
or al, al
jne @B
lea eax, dword [edx+ecx]
xor eax, edx
pop edi
pop esi
return