I have a question on the AND instruction in 64-bit mode. I have this manual telling me that the AND 32-bit immediate is to be sign-extended to 64-bit. But I can't do this
and rax,0x80000000
Which is ridiculous I think because 0x800000 is a perfect DWORD operand. The highest I can go with it is
and rax,0x7fffffff
So what's happening here? I can't use MSb=1 to sign-extend an operand? If so, then how's sign-extension is supposed to work against an operand without being able to use it as in 0x80000000?
Thanks for you replies.