When trying to write an instruction set analysis tool for disassembled code (https://superuser.com/a/832440/384221) I have found opcode MOVABS which was not included in my opcode source database (Shirk's gas.vim file) and I am not sure in which architecture it has been introduced.

According to What is the meaning of movabs in gas/x86 AT&T syntax? and other sources it seems that the instruction has been introduced before 64-bit architectures. But was it with i686 or earlier?

Thank you.

2 Answers 2


movabs is just a GAS-specific way to enforce encoding a 64-bit memory offset or immediate. It's still the same standard MOV opcode.

I'm not sure where you got the notion that it was introduced before x64, it's obviously not correct. For example, the Solaris x86 manual mentions: "movabs valid only under –m64".

  • Oh, so it is the same as nopw and nopl, thank you. By the way, do you know if I could find anywhere these GAS-specific opcodes? Oct 29, 2014 at 13:37

As Igor mentioned, it's GAS specific.

git log --reverse -Smovabs

tells us that it was introduced in 2000 commit c0d8940 and:

git tag --contains c0d8940

says that it was present as early as binutils-2_11.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.