Вопросы по теме 'inline-assembly'

Используете NASM в качестве встроенного компилятора ассемблера в Visual Studio 2008?
Мне удалось установить NASM в качестве компилятора для отдельных файлов .asm, но я не могу найти способ установить NASM в качестве компилятора для встроенного ассемблера (директива __asm). Например, helloWorld db "Hello world !",0 не...
2138 просмотров

GCC: Встроенный ассемблер — подходит?
Итак, я только что узнал, что GCC может выполнять встроенную сборку, и мне было интересно две вещи: В чем преимущество встроенной сборки? Можно ли использовать GCC в качестве компилятора/ассемблера для изучения ассемблера? Я нашел пару...
2231 просмотров
schedule 03.08.2023

Как определить тип архитектуры ЦП во время выполнения с помощью GCC и встроенного ассемблера?
Мне нужно найти тип архитектуры процессора. У меня нет доступа к /proc/cpuinfo, так как на машине работает syslinux. Я знаю, что есть способ сделать это с помощью встроенного ASM, однако я считаю, что мой синтаксис неверен, поскольку моя переменная...
936 просмотров
schedule 06.11.2023

В расширенном встроенном asm в стиле GCC можно вывести виртуализированное логическое значение, например флаг переноса?
Если у меня есть следующий код C ++ для сравнения двух 128-битных целых чисел без знака со встроенным amd-64 asm: struct uint128_t { uint64_t lo, hi; }; inline bool operator< (const uint128_t &a, const uint128_t &b) { uint64_t...
1707 просмотров
schedule 18.01.2024

64-битные проблемы: попытка скопировать значение из %rsp во временную переменную с помощью встроенной сборки
Я посещаю занятия по проектированию операционных систем, на которых нам дали микроядро, написанное на языке C, на основе которого мы строим. Ядро, кажется, было разработано с учетом 32-битных машин, и я использую Snow Leopard. Итак, мы с другом в...
1687 просмотров
schedule 02.10.2022

MessageBoxA в сборке Windows AT&T
Я пытаюсь вызвать MessageBoxA() непосредственно в сборке, используя встроенный gcc. Однако мне нужно сделать это двумя способами: во-первых, использовать динамическую адресацию с помощью LoadLibrary() и GetProcAddress() - я нашел руководство по этому...
1596 просмотров

Помогите понять инструкцию DIV во встроенной сборке x86
Читая исходный код в проекте GNU, я наткнулся на этот фрагмент встроенной сборки: __asm__ ( "divq %4" : "=a" (q), "=d" (r) : "0" (n0), "1" (n1), "rm" (d) ); Здесь переменные q , r , n0 , n1 и d являются 64-битными целыми числами....
4018 просмотров
schedule 07.12.2022

Считать значение регистра в переменную с помощью одной команды asm
Как я могу прочитать значение регистра в переменной с помощью одной встроенной команды ассемблера? Я использую gcc в старой системе freeBSD (v2.1 i386). У меня такой код: static volatile unsigned long r_eax, r_ebx; asm ("movl %%eax, %0\n"...
3777 просмотров
schedule 18.03.2023

Барьер volatile и компилятора с встроенной сборкой gcc
В нашем продукте у нас есть встроенная реализация мьютекса, использующая множество специфичных для платформы и компилятора методов для конкретных аппаратных частей. Одно из наших «правил» для чрезмерно оптимизированного кода, пытающегося «обмануть»,...
2672 просмотров
schedule 08.06.2023

Как использовать определенный регистр во встроенном ассемблере ARM
Я пытаюсь позволить встроенному ассемблеру копировать некоторые значения в определенные регистры, но он только жалуется. Это короткая версия кода, которая вызовет ошибку: asm("" :: "r0" (value)); asm("" :: "a1" (value)); Обе строки...
2749 просмотров
schedule 22.05.2022

Как использовать глобальную переменную во встроенной сборке в компиляторе Greenhills?
Я хочу использовать глобальную переменную во встроенной сборке. asm(" LDR R0,g_TsInitStackPointerAddress"); Здесь g_TsInitStackPointerAddress — глобальная переменная. При компиляции ошибок не показывает. Но при подключении выдает...
1956 просмотров
schedule 11.05.2022

не удалось вызвать системный вызов с помощью встроенного ассемблера gcc (64-разрядная версия)
Я пытаюсь вызвать системный вызов write с помощью встроенного ассемблера (gcc 4.2.1, Mac OS 10.7.5), код успешно компилируется, но вывода нет вообще. Это полный код: int main() { char s[] = "Test\n"; // write(1, s, 5); asm(...
736 просмотров
schedule 29.06.2023

Написание машинных инструкций MIPS и их выполнение из C
Я пытаюсь написать самоизменяющийся код на C и MIPS. Поскольку я хочу изменить код позже, я пытаюсь написать настоящие машинные инструкции (в отличие от встроенной сборки) и пытаюсь выполнить эти инструкции. Кто-то сказал мне, что можно просто...
2199 просмотров
schedule 18.10.2023

Встроенный ассемблер gcc получает ошибку lvalue, требуемую в инструкции asm
Мне нужно написать C-код, который делает DDRB &= ~pins; с встроенной сборкой (AVR). Я никогда не использовал его раньше. Моя попытка: register uint8_t t1, t2; // temporary registers __asm__ volatile ( "in %[t1], %[w1_ddr]"...
3805 просмотров
schedule 10.02.2023

Понимание базовой встроенной сборки NEON
Учитывая этот вопрос: как писать встроенные коды сборки о LOOP в Xcode LLVM? На что отвечает следующий встроенный ассемблерный код: void brighten_neon(unsigned char* src, unsigned char* dst, int numPixels, int intensity) { asm volatile (...
3970 просмотров
schedule 14.11.2023

ошибка встроенной сборки gnu
Я пытаюсь записать встроенную сборку в файл C и получаю 2 ошибки: open.c:10: Error: junk ptr номер 'после выражения` open.c:10: Error: suffix or operands invalid for les '' Это мой файл: int open(char * nombre, unsigned char modo) {...
443 просмотров
schedule 04.05.2022

вызов asm sqrtsd под c ++
В Visual 2012 как я могу вызвать функцию sqrtsd asm в проекте c ++ Я не могу найти это через гугл что-то типа : double mySqrt(double val) { __asm { ... sqrstd... } } РЕДАКТИРОВАТЬ: в 32-битном режиме
1442 просмотров

Нетрадиционные вызовы со встроенным ASM
Я работаю с проприетарным MCU, в котором есть встроенная библиотека в металле (маска ROM). Я использую компилятор clang, который использует встроенный ASM, подобный GCC. Проблема, с которой я сталкиваюсь, - это вызов библиотеки, поскольку у...
841 просмотров
schedule 31.01.2023

Использование заголовков C в коде C ++ в GNU. Ошибка при включении встроенной сборки: невозможное ограничение в asm
У меня странный. Я работаю над встроенной системой, используя файлы заголовков поставщиков. Я компилирую файлы с помощью GCC 4.6.3. Я хочу использовать C ++ для своего кода, у меня ошибка, которую я не могу понять. Я запускаю программу-пример...
2814 просмотров
schedule 21.10.2022

Как сохранить переменную C++ в регистре
Я хотел бы получить некоторые пояснения относительно хранения регистровых переменных: есть ли способ гарантировать, что если мы объявили регистровую переменную в нашем коде, она будет храниться ТОЛЬКО в регистре? #include<iostream> using...
23643 просмотров
schedule 31.12.2023