Из руководства Intel64 и IA-32, том 2a, есть много возможных вариантов использования инструкции mov. Такие как:
mov r64, m64 # move m64 to r64
mov rax, moffs64 # move quadword at (offset) to RAX
Я написал код для тестирования (газ, синтаксис Intel):
movabs rax, label
movabs rax, offset label
...
label:
.quad 0x112233445566
После сборки, линковки и objdump я получил родственную сборку:
mov rax, qword ptr ds:0xffff80000000008e
mov rax, 0xffff80000000008e
Очевидно, что вторая инструкция, которую я написал, не является инструкцией, ожидаемой как руководство. Какая инструкция по формату в мануале?
movabs rax, offset label
ни один из двух, этоmov r64, imm64
. Если вы хотите увидеть первую версию, то естьmov r64, m64
, тогда используйте регистр, отличный отrax
, напримерmov rdx, label
. - person Jester   schedule 22.07.2014