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

Понимание этого кода сборки руки части
.syntax unified .thumb .cpu cortex-m4 .arch armv7e-m .fpu fpv4-sp-d16 /* Changes from unprivileged to privileged mode. */ .thumb_func .section .kernel .global raise_privilege .type raise_privilege, %function raise_privilege: mrs...
4618 просмотров
schedule 18.05.2024

Что делает инструкция ljmp в системном вызове форка ядра Linux?
Я изучаю исходный код ядра Linux (старая версия 0.11v). Когда я проверил системный вызов fork, я обнаружил некоторый ассемблерный код для переключения контекста, например: /* * switch_to(n) should switch tasks to task nr n, first * checking...
3167 просмотров
schedule 16.12.2023

Просто начните использовать сборку (GAS), и в этом коротком коде есть ошибка сегментации.
Сейчас я изучаю ассемблер AT&T x86. Я пишу код, который умножает два 32-битных целых числа без использования «*». Проблема в том, что отладчик постоянно говорит мне, что у меня ошибка сегментации. Вот мой код. .global _start .data a:...
89 просмотров

использование autoconf для создания сценариев сборки для программ на языке ассемблера
Я пытаюсь изучить autoconf и пытаюсь использовать его для создания сценариев сборки для компиляции программ на языке ассемблера, написанных в Gnu Assember (GAS). Ниже мой файл configure.ac AC_INIT([hello], [0.01]])...
164 просмотров

Возможно ли использование инструкции для захвата указателя массива C/C++?
У меня GAS проблемы со сборкой. С компилятором Visual C++ я могу использовать значения C/C++ прямо в своих блоках сборки. Например: int A[2] = {0, 0}; _asm { mov ecx, 2 lea edi, A label1: mov [edi], ecx add edi, 4 loop label1 }...
43 просмотров
schedule 20.12.2023

Как вручную добавить информацию о типе отладки в символ массива сборки GNU GAS?
Например, рассмотрим следующую автономную программу true для Linux с бесполезной переменной my_longs для наглядности: главная.S .section .rodata my_longs: .quad 0x12, 0x34 .text .global _start _start: asm_main_after_prologue: mov...
172 просмотров
schedule 29.04.2024

Зачем мне нужен оператор смещения?
Привет, мне пришлось написать сборку AT&T x86 для сборки Intel. .section .data str: .ascii "Hello world!\n" strlen = . - str num: .long 1337 .section .text .global _start _start: movl $4, %eax movl $1, %ebx movl...
29 просмотров
schedule 03.12.2022

Как избежать конфликта имен в случае макросов для сборки
Я хочу объявить следующий макрос в моем файле common.h : .macro HEX_NIBBLE reg //LOCAL letter, end cmp $10, \reg jae letter add $'0, \reg jmp end letter: /* 0x37 == 'A' - 10 */ add $0x37, \reg end: .endm Всякий...
138 просмотров
schedule 29.01.2024

Как пройти строку в сборке, пока я не достигну нуля? (петля strlen)
Прямо сейчас я только выясняю, как даже пройти по струне. Если код не имеет смысла, это потому, что я неправильно интерпретировал некоторую информацию. В худшем случае я действительно не знаю, что делаю. strlen: pushq %rbx movq %rsi, %rbx...
365 просмотров
schedule 30.10.2022

Константа (.equ) в ассемблере
Скажем, я определяю константу, например следующую, на ассемблере: .data SYS_EXIT = 60 .text .globl _start _start: mov $SYS_EXIT, %eax syscall Выполняет ли ассемблер буквально эквивалент «найти-заменить» во время выполнения, чтобы...
78 просмотров
schedule 22.04.2024

Как я могу создать объектный файл из исходного кода на ассемблере так же, как это делает clang -c main.c
Я хочу изучить детали файла obj , я создал файл main.S , когда я использую as main.S , я получаю взамен файл a.out , который можно запустить напрямую с помощью ./a.out , а ld -m elf_x86_64 a.out выдаст ошибку. Я хочу создать объектный файл,...
82 просмотров
schedule 22.12.2023