I just found a strange instruction by assembling (with gas
) and disassembling (with objdump
) on a amd64
architecture.
The original amd64
assembly code is:
mov 0x89abcdef, %al
And, after gas
compiled it (I am using the following command line: gcc -m64 -march=i686 -c -o myobjectfile myassemblycode.s
), objdump
gives the following code:
a0 df ce ab 89 00 00 movabs 0x89abcdef, %al
My problem is that I cannot find any movabs
, nor movab
in the Intel assembly manual (not even a mova
instruction).
So, I am dreaming ? What is the meaning of this instruction ? My guess is that it is a quirks from the GNU binutils, but I am not sure of it.
PS: I checked precisely the spelling of this instruction, so it is NOT a movaps
instruction for sure.
a0 ef cd ab 89
, nota0 df ce ab 89