Результаты поиска по запросу "gas"

2 ответа

, Форма с 2 операндами быстрее и записывает только один регистр.)

у меня есть функция сборки, которая вызывается на C. Она компилируется и не выдает мне никаких предупреждений, но когда я пытаюсь ее запустить, она вызывает ошибку сегментации. Я думаю, это потому, что я не могу переместить константу в регистр, ...

1 ответ

 (не PIC, статические адреса умещаются в 32 бита)

Мало того, что этот код .SECTION .data msg: .string "AAAA" .SECTION .text .globl _start _start: mov $1, %rax mov $1, %rdi mov msg, %rsi mov $4, %rdx syscallне segfault, он также ничего не выводит.Согласно тому, что я прочитал, программа должна ...

2 ответа

Газовый макрос altmacro со знаком процента в параметре по умолчанию завершается неудачно с «оператором% необходимо абсолютное выражение»

Я хочу создать макрос, как показано ниже: .altmacro .macro assert_eq a, b=%eax LOCAL ok #... .endmДля использования в качестве: assert_eq $1 assert_eq $1, %eaxя хочу.altmacro заLOCAL (Я вижу другую возможность использования\@, но я ...

ТОП публикаций

4 ответа

) []) ap) вход. Обратите внимание, что привязка ввода к выходу - это способ установки инициализированного временного регистра, модифицированного оператором asm. Вход, не связанный с выходом, предполагается, что GCC не изменяется, например, "b" (16) ниже устанавливает% 11-16, и GCC может использовать этот регистр в следующем коде, если значение 16 оказалось необходимым. Вы можете даже использовать нормальный вывод asm для нуля, если все входы, которые могут совместно использовать один и тот же регистр, используются до того, как будут использоваться нуля. Регистры VSX, перекрытые оператором asm, могли бы использовать этот метод, за исключением ограничения GCC на количество параметров asm.

транная просьба, но у меня есть ощущение, что это возможно. Я хотел бы вставить некоторые прагмы или директивы в области моего кода (написанные на C), чтобы распределитель регистров GCCне используй их. Я понимаю, что могу сделать что-то ...

2 ответа

 а затем позиционные. Особенно актуально при использовании

я есть несколько файлов NASM, которые обычно имеют структуру: [BITS 64] [ORG 0x0000000000200000] start: ... retЯ собираю их так: nasm -f bin abc.asmЯ хотел бы написать некоторые из них, используя вместо этого ГАЗ. Два вопроса: Какие директивы ...

1 ответ

отлично! Большое спасибо!

асть проекта компилятора я должен написать код ассемблера GNU для x86, чтобы сравнить значения с плавающей запятой. Я попытался найти ресурсы о том, как сделать это онлайн, и насколько я понимаю, это работает так: Если предположить, что значения ...

2 ответа

Замена обработчика прерываний от таймера в DOS с GNU (GCC и GAS)

Как следует из названия, я пытаюсь заменить существующий обработчик прерывания от Таймера в DOS своим собственным. После поиска повсюду различных решений я нашел некоторый код на ассемблере, который делает именно это, и мне даже удалось его ...

1 ответ

Независимая адресация в ассемблере GNU с синтаксисом Intel

На x86-64, как мне загрузить адрес из раздела .data позиционно-независимым способом (PIC и PIE-совместимый) при использовании ассемблера GNU ссинтаксис Intel. Например, используя синтаксис AT & T, вы можете сделать это: leaq mystring(%rip), ...

2 ответа

GAS: объяснение .cfi_def_cfa_offset

Я хотел бы объяснить значения, используемые с директивами .cfi_def_cfa_offset в сборке, сгенерированной GCC. Я смутно знаю, что директивы .cfi участвуют в фреймах вызова и раскручивании стека, но мне хотелось бы более подробное объяснение того, ...

3 ответа

Как скомпилировать файл ассемблера в необработанный двоичный (например, DOS .com) формат с помощью ассемблера GNU (as)?

Я хочу скомпилировать этот исходный код в Windows (это просто пример): start: NOP NOPКогда я компилирую его с помощью NASM или FASM, длина выходного файла составляет 2 байта. Но когда я компилирую его с помощью ассемблера GNU (as), длина ...