Результаты поиска по запросу "inline-assembly"

2 ответа

Когда использовать ограничение earlyclobber в расширенной встроенной сборке GCC?

Я понимаю, когда следует использовать список сапожников (например, перечислять регистр, который изменен в сборке, чтобы его нельзя было выбрать для использования в качестве входного регистра, и т. Д.), Но я не могу обернуть голову вокруг ...

1 ответ

Преимущество округления inline-ASM путем помещения значения float в переменную int

Я унаследовал довольно интересный кусок кода: inline int round(float a) { int i; __asm { fld a fistp i } return i; } Моим первым побуждением было отказаться от него и заменить звонки на(int)std::round (до C ++ 11, будет использоватьstd::lround ...

2 ответа

llvm сообщает: неподдерживаемый встроенный asm: ввод с типом 'void *', совпадающий с выводом с типом 'int'

У меня есть следующий встроенный код сборки: int get_year(int a, int *b, char * c) { int ret, t1, t2; asm ( "addl %3, %[a] \n\t" "movl %[a], %[t1] \n\t" "movl $58, %%edx \n\t" "movb %%dl, 0x04(%1) \n\t" : [t1] "=r" (t1), "=&D" (t2) : [a] "r" ...

ТОП публикаций

1 ответ

Как получить доступ к структуре / переменным C из встроенного asm?

Рассмотрите следующий код: int bn_div(bn_t *bn1, bn_t *bn2, bn_t *bnr) { uint32 q, m; /* Division Result */ uint32 i; /* Loop Counter */ uint32 j; /* Loop Counter */ /* Check Input */ if (bn1 == NULL) return(EFAULT); if (bn1->dat == NULL) ...

4 ответа

Как представить шестнадцатеричное значение, например FFFFFFBB, в программировании на x86-сборке?

Я изучаю программирование встроенной сборки x86. Я хотел написатьmov ecx, FFFFFFBB, однако компилятор не распознает его. Как должны быть записаны шестнадцатеричные числа в коде встроенного ассемблера?

2 ответа

Пример Intel, который читает метку времени с помощью asm-кода, использует на два регистра больше, чем необходимо?

Я изучаю результаты измерения производительности с помощью регистра меток времени (TSR), который есть в процессорах x86. Это полезный регистр, поскольку он измеряет монотонную единицу времени, которая не зависит от изменения тактовой частоты. ...

1 ответ

Странный операнд 'asm' имеет ошибку невозможных ограничений

Я пытаюсь скомпилировать простую программу на C (Win7 32bit, Mingw32 Shell и GCC 5.3.0). Код C выглядит так: #include <stdio.h> #include <stdlib.h> #define _set_tssldt_desc(n,addr,type) \ __asm__ ("movw $104,%1\n\t" \ :\ :"a" (addr),\ "m" ...