x86汇编语言:如何检测字符串中的单词数?

时间:2016-03-04 23:48:04

标签: assembly x86 masm32

我在下面写的代码无法正常工作。它遍历用户输入字符串,其地址存储在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

0 个答案:

没有答案