Вопросы по теме 'inline-assembly'
Используете NASM в качестве встроенного компилятора ассемблера в Visual Studio 2008?
Мне удалось установить NASM в качестве компилятора для отдельных файлов .asm, но я не могу найти способ установить NASM в качестве компилятора для встроенного ассемблера (директива __asm). Например,
helloWorld db "Hello world !",0
не...
2138 просмотров
schedule
06.08.2023
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 просмотров
schedule
04.08.2023
Помогите понять инструкцию 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 просмотров
schedule
02.04.2023
Нетрадиционные вызовы со встроенным 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