I'm learning assembly code on Linux x64. I wrote something like:
pushq 0x1234567890123456 #It didn't work.
pushq 0x12345678 #It worked.
I used gcc -c to compile the code and the first line was error with Error: operand type mismatch for 'push'
. But pushq means push something 64 bits into stack and the hexadecimal number is exact 64 bits.
So, why would this error occurred ?