我在下面写的代码无法正常工作。它遍历用户输入字符串,其地址存储在EDX中,以确定字符串中的字数。我认为可以通过计算" whitespaces"的数量来检测字符串中的单词数,但是这个代码返回的值比字符串中的实际字数少1。此外,如果用户仅键入空格,则返回的值根本不准确。如何更改此代码以准确确定字符串中的单词数。
getNumWords PROC
push edx
mov eax,0
L1: cmp BYTE PTR [edx],0
je L3
cmp BYTE PTR [edx]," "
je L2
inc edx
jmp L1
L2: inc edx
cmp BYTE PTR [edx]," "
je L2
cmp BYTE PTR [edx],0 ;handles - user enters only whitespaces
je L3
inc edx
inc eax
jmp L1
L3: pop edx
mov outputVal, eax
ret
getNumWords ENDP