'8086 assembly language about log in and sign up account

For the login part is good, everything works well on that part. But for registering a new account part, it keeps showing the invalid message although I full all the requirements which are username cant be repeated and the length of username should be more than 5 letters.

Here is my code

Here is the problem that I facing now:
Here is the problem that I facing now

Although it's a bit long, I hope u guys can take time for looking at it. This is my assignment.



Solution 1:[1]

An unfortunate fall-through problem

   call isValidUserName
   cmp aX, 1
   JNE oor4
   mov si, offset regUser
   call checkLength
   cmp cx, 5
   JBE oor5
                         <=== All is well: Need to jump to `askPsw` here
   oor4:
       jmp invalidacc
   oor5:
       jmp invalidUserLength

askPsw:

The code is missing a crucial jmp. For now the code falls through in oor4 eventhough the new username is long enough.

Next code solves the problem and avoids adding yet another jump to the program (mainly by inverting the condition):

    call isValidUserName     ; -> AX=[0=NOK, 1=OK]
    cmp  ax, 1
    JNE  oor4
    mov  si, offset regUser
    call checkLength         ; -> CX
    cmp  cx, 5
    JA   askPsw
  oor5:
    jmp  invalidUserLength
  oor4:
    jmp  invalidacc
     
askPsw:

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Sep Roland