I use the GNU assembly on 64 bit processor. I assemble the following code
movq %rsp,%rax
After that, I do a objdump on the binary code.
And I got the following:
401000: 48 89 e0 mov %rsp,%rax
I'd thought I would see an 8 byte instruction in binary because my processor is 64 bit, but there is an only 3 byte instruction.
Is it going to be padded into a 8 byte instruction when the CPU decodes the 3 byte one?
For example:
48 49 e0 -> 48 49 e0 00 00 00 00 00