fixing STRNCMP
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Thu, 20 May 2021 19:25:25 +0000 (05:25 +1000)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Thu, 20 May 2021 19:25:25 +0000 (05:25 +1000)
wordlists.asm

index b2e8260e479d275c24a3162776cb5ab28fc82757..5f4f281c6be3ea3f2bcb1047b7379bedcd9c40ec 100644 (file)
@@ -64,7 +64,7 @@ p_words_END:
        inc rdx
 p_strncmp_loop:
        dec rdx
-       je p_strncmp_end
+       jle p_strncmp_end
        mov cl,[rax]
        inc rax
        sub cl,[rbx]
@@ -85,16 +85,16 @@ p_strncmp_end:
 p_find_loop:
        cmp rcx,0
        je p_find_notfound      ; jump at end of word list
-       cmp rbx,qword [rcx+16]  ; compare lengths
+       cmp rbx,qword [rcx+24]  ; compare lengths
        jne p_find_nextword     ; jump on length mismatch
        push rcx                ; save tfa for later
        ;; check word
        push rsi                ; input chars
        tfa2pname rcx
-       push rcx                ; word chars
+       push rcx                ; word pname
        push rbx                ; length
-       DOFORTH p_strncmp
-       pop rax                 ; return value
+       DOFORTH p_strncmp       ; ( s1* s2 n -- v )
+       pop rax                 ; return value v
        pop rcx                 ; restore tfa
        cmp rax,0
        je p_find_found