Вопросы по теме 'gnu-assembler'
документация директив GNU ассемблера
Пытаюсь на данный момент изучить сборку mips. С этой целью я написал очень простую программу на c ...
int main(){}
... и скомпилировал его на машине mips с параметром -S для gcc для генерации кода сборки. Вот как выглядит начало основной...
3889 просмотров
schedule
29.05.2022
GCC не сохраняет / не восстанавливает зарезервированные регистры при вызовах функций
У меня есть сценарий в GCC, вызывающий у меня проблемы. Я получаю не то поведение, которого я ожидаю. Подводя итог ситуации, я предлагаю несколько новых инструкций для x86-64, которые реализованы в симуляторе оборудования. Чтобы протестировать эти...
2242 просмотров
schedule
12.05.2023
строка и 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 просмотров
schedule
22.08.2023
Ошибка компиляции ассемблера 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 просмотров
schedule
20.05.2023
Синтаксис 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 просмотров
schedule
23.03.2023
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 просмотров
schedule
02.01.2024