我刚刚通过在架构上组装(使用gas
)和拆卸(使用objdump
)发现了一条奇怪的指令amd64
。
原来的amd64
汇编代码是:
mov 0x89abcdef, %al
并且,gas
编译后(我使用以下命令行:)gcc -m64 -march=i686 -c -o myobjectfile myassemblycode.s
,objdump
给出以下代码:
a0 df ce ab 89 00 00 movabs 0x89abcdef, %al
我的问题是我找不到任何movabs
,也找不到movab
英特尔汇编手册(甚至没有mova
说明)。
所以,我在做梦?这个指令的意义是什么?我的猜测是它是 GNU binutils 的一个怪癖,但我不确定。
PS:我仔细检查了这条指令的拼写,所以它movaps
肯定不是一条指令。