I am working through the riddles of "xchg rax,rax" (xchg.xorpd.net). Those are riddles about x86_64 assembly, where you have to understand what code pieces do. This is riddle number 0x15:
mov rdx,0xffffffff80000000
add rax,rdx
xor rax,rdx
It seems like this code is meant to enhance the value inside rax in some way, though I don't fully understand how. I tried to give in some inputs and outputs, but I didn't yet manage to understand what this code does. What is this 0xffffffff80000000 number? Could someone point me in the correct direction to the solution? I'm really curious about this one.