X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=wordlists.asm;h=5f4f281c6be3ea3f2bcb1047b7379bedcd9c40ec;hb=0d3bd729048b79778f83f100fbaab1970f4efc05;hp=b2e8260e479d275c24a3162776cb5ab28fc82757;hpb=e086c1738e84f6952008d1d2efa4e36b31b061b3;p=rrq%2Frrqforth.git diff --git a/wordlists.asm b/wordlists.asm index b2e8260..5f4f281 100644 --- a/wordlists.asm +++ b/wordlists.asm @@ -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