Вопросы по теме 'gnu-assembler'

документация директив GNU ассемблера
Пытаюсь на данный момент изучить сборку mips. С этой целью я написал очень простую программу на c ... int main(){} ... и скомпилировал его на машине mips с параметром -S для gcc для генерации кода сборки. Вот как выглядит начало основной...
3889 просмотров
schedule 29.05.2022

GCC не сохраняет / не восстанавливает зарезервированные регистры при вызовах функций
У меня есть сценарий в GCC, вызывающий у меня проблемы. Я получаю не то поведение, которого я ожидаю. Подводя итог ситуации, я предлагаю несколько новых инструкций для x86-64, которые реализованы в симуляторе оборудования. Чтобы протестировать эти...
2242 просмотров

строка и asm x86
Я новичок в asm и использую строку. 1 / У меня есть строка, и я хочу вернуть адрес первого символа. (Я вызываю функцию asm в C main). Я пробовал : movl $str, %eax По мне, он возвращает строку. С movl $(str), %eax он возвращает...
1439 просмотров
schedule 29.01.2024

Есть ли символ, представляющий текущий адрес в сборке GNU GAS?
Мне любопытно узнать, есть ли какой-либо специальный синтаксис GAS для достижения того же, что и в примере NASM: SECTION .data msg: db "Hello World",10,0 ; the 0-terminated string. len: equ $-msg ; "$" means...
7861 просмотров

Ошибка компиляции ассемблера GNU 'недопустимый операнд во встроенном asm'
Я пытаюсь скомпилировать некоторый ассемблерный код с использованием ассемблера GNU с целью в качестве платформы ARM. Но появляются ошибки. Я не знаком с грамматикой ассемблера. Кто-нибудь может сказать мне, как обойти эту ошибку? error:...
2210 просмотров
schedule 05.02.2022

внутреннее перемещение не исправлено
Недавно я начал программировать на ассемблере для ядер рук. Мои первые небольшие демонстрации, только с разделом .text, запускались без проблем. В качестве логического расширения я хотел структурировать ассемблерный код в обычные разделы: .text,...
22884 просмотров
schedule 28.05.2022

Как получить размер функции C из программы C или с помощью встроенного ассемблера?
Предположим, у меня есть функция, как показано ниже: # cat 003.c int foo(int a, int b) { return a+b; } И скомпилируйте его следующим образом: gcc -S 003.c В результате сборки получается следующий результат: .file...
8434 просмотров
schedule 22.04.2022

Доступ к указателю *next на структуру с помощью GNU Assembly
Я использую сборку GNU, пытаюсь перебрать структуру C, связанную в списке, и найти определенное значение из одного из значений структур. Мне интересно, как мне добраться до указателя *next структуры, чтобы перейти к следующему узлу и проверить...
1224 просмотров
schedule 07.05.2024

Поместите раздел кода ассемблера GCC в оперативную память
У меня есть функция сборки, написанная для встроенного проекта ARM, которую я хотел бы пометить атрибутом, чтобы поместить ее в раздел кода RAM, а не во флэш-память. Как это указать? Чтобы сделать это для C, я бы использовал атрибут section:...
1104 просмотров
schedule 25.08.2023

Как заставить GNU Assembler использовать косую черту / для комментариев?
Это действительно моя глупая идиосинкразия, но я терпеть не могу того, как GNU AS вставляет комментарий. Я слишком привык к подходу Sun (который используется в большинстве ассемблеров UNIX), в котором используется простой слэш «/», чтобы...
13409 просмотров
schedule 05.05.2023

Каков синтаксис для OSX x86 GAS .macros?
У меня много проблем с работой этого крошечного макроса. .macro int_kernel subl $4, %esp int $0x80 addl $4, %esp .endm Запустив ассемблер, я получаю as -arch i386 upper.s -o ./upper.o upper.s:51:expecting operand before ','; got...
616 просмотров
schedule 01.12.2022

Перевод с NASM на GAS
как перевести mov [ebx], al из NASM в GAS? Я пробовал mov %al, (%ebx) , но это ошибка сегментации. Другой вопрос, скажем, у меня есть массив в GAS .lcomm array, 50 Должен ли я ставить знак доллара ($) в array вот так: mov %rbx, $array или...
3789 просмотров
schedule 15.07.2022

Системный вызов чтения газа при нарушении доступа
Я новичок в языке ассемблера и столкнулся с проблемой на первых шагах. У меня есть некоторый опыт работы с языками высокого уровня, но я чувствую себя полным новичком на этом низком уровне. Я использую ассемблер GNU (газ) версии 2.23 x86_64 в...
185 просмотров
schedule 21.04.2024

Соглашение о вызове функций C: почему movl вместо pushl?
Я не понимаю, почему следующие строки используют movl для передачи данных ниже указателя стека, созданного GCC. movl -4(%ebp), %eax # -4(%ebp) <- local variable 1 movl 8(%ebp), %edx # 8(%ebp) <- first parameter movl...
381 просмотров

Синтаксис GAS, как нажать?
GAS отклоняет все мои pushl'ы с "неправильный префикс инструкции" . Я не могу понять, почему... (пример фиктивного кода) .section .text .global _start _start: movl $10, %eax pushl %eax movl $1, %eax...
931 просмотров
schedule 06.05.2024

Сборка: медитация шаблона функции
Сейчас я изучаю сборку и ничего не понимаю в (предположительно) стандартном шаблоне функции. Итак, основываясь на этой замечательной книге , "форма запомнить для функций выглядит следующим образом:" function_label: pushl %ebp movl...
70 просмотров
schedule 26.11.2022

Как добавить значения из вектора друг к другу
В моем коде я решаю интеграл y=x^2-4x+6 Я использовал SSE — он позволяет мне работать с 4 значениями одновременно. Я сделал программу, которая решает этот интеграл со значениями от 0 до 5, разделенными на пять 4-элементных векторов n1, n2,...
129 просмотров
schedule 07.06.2022

О вызове функции C из ассемблера и наоборот
Я пробовал вызывать ASM из C и наоборот. По крайней мере, на данный момент это работало идеально, но у меня есть вопросы. Вот мой код: test.S последовал: .text .global _start .global _main .type _main, @function...
893 просмотров

GNU as, puts работает, а printf нет
Это код, с которым я играю прямо сейчас: # file-name: test.s # 64-bit GNU as source code. .global main .section .text main: lea message, %rdi push %rdi call puts lea message, %rdi push %rdi call printf push...
679 просмотров
schedule 08.05.2024

Используя .intel_syntax noprefix, как я могу получить адрес памяти метки?
Я учусь создавать программы в реальном режиме, собранные и связанные с: GCC Assembler версии 2.25 Binutils версии 2.25 GCC версии 5.2.0 Я использую синтаксис Intel без префиксов, указанных с помощью .intel_syntax noprefix Я хочу...
5736 просмотров