Каким будет gcc-компилируемый код GAS ASM для хранения моей постоянной $ 3360220 в ячейке памяти 0x7FFFFFFFb098? Получит ли это желаемый результат? Это нормально, что инструкция movabs «разливается» на следующей строке? добавлен вопрос: мой разобранном код выглядит следующим образом Eventhough я написалСохранение константы в памяти с использованием ASM
jmp 0x401070
, почему такое и как это исправить это? он также конвертируются мой MOVQ в movabs
0: 49 c7 c1 dc 45 33 00 mov $0x3345dc,%r9
7: 49 ba 98 f0 ff ff ff movabs $0x7fffffff098,%r10
e: 07 00 00
11: 4d 89 0a mov %r9,(%r10)
14: e9 00 00 00 00 jmpq 0x19
Я сделал файл .d в Linux x86-64 с помощью objdump -d file.o > file.d
. Как использовать правильную ссылку?
Я ошибся адресом, поначалу пропуская «b» в шестнадцатеричном формате.
ошибка, несоответствие размера операнда для movabs говорит мой gcc. Благодарим вас за информацию о недостающем компоновщике. Таким образом, мой код не будет работать должным образом без сборочной компоновки компоновщика, я думаю. –