simple strcmp() asm64
Technically there are no errors, however there is some redundancy in your code. You only need be concerned with the terminator of one string. Therefore you can test for NULL in this manner;

mstrc:     cmp     byte [rsi], 0          ; Are we at EOS (end of string)
           jz      stop
           cmpsb                          ; Lookup why this works
           jz      mstrc
stop:


Those 4 instructions almost accomplish the exact functionality your looking for except your code expects source and destination to be exactly the same.  Mine however determines that as many characters in destination are equal to source.

Conformity to strcmp

mstrc:    lodsb
          or      al,  al
          jz      stop
          sub     al, [esi]
          jnz     stop
          inc     esi
          jmp     mstrc
stop: