Я пытаюсь собрать некоторый 64-битный код, и сборка завершается неудачно в строке:
addq $0xffffff7fc0005000, %rax
с ошибкой:
Ошибка несоответствия типа операнда для `add'
Первый операнд - это 64-битное значение, а последний - регистр, который должен хорошо сработать. Этой инструкции предшествует псевдооперация .code64
. Я собираюсь с
x86_64-elf-as test.s -o test.o --64
Что касается самого ассемблера, то при вызове с --version
он возвращает:
GNU assembler (GNU Binutils) 2.32
Copyright (C) 2019 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-elf'.