EDIT: This is not a duplicate - in the supposed duplicate there is no mention of sub/add instructions - only MOV. Thanks to harold for the helpful replies...
I know that the mov instruction using partial registers, such as eax, will clear the upper bits of the rax register.
However this also seems to happen for add/sub,
mov rcx, 1234567800000000h
sub ecx,1
does not yield 12345678FFFFFFFFh for rax but 00000000FFFFFFFFh.
Same happens with add
mov rcx,12345678FFFFFFFFh
add ecx,1
Result is 0.