|
|
|
| авильно скомпилировать в devcpp выражение типа:
#include <stdio.h>
main()
{
float a[4] = { 300.0, 4.0, 4.0, 12.0 };
float b[4] = { 1.5, 2.5, 3.5, 4.5 };
__asm {
movups xmm0, a ;
movups xmm1, b ;
mulps xmm1, xmm0 ;
movups a, xmm1 ;
}
int x;
for(x=0;x<4;x++)
{
printf("%f\n",a[x]);
}
}
|
Код взял специально из примера по SSE из Wikipedia.
Дело в том, что в MS VisualStudio подобный код с ассемблерными вставками компилится без проблем, а вот в devcpp не хочет. Мне думается надобно асемблер подключить, если да - то как и какой? | |
|
|
|
|
|
|
|
для: Miha_drinking_bout
(17.03.2011 в 17:14)
| | #include <stdio.h>
float a[4] = { 300.0, 4.0, 4.0, 12.0 };
float b[4] = { 1.5, 2.5, 3.5, 4.5 };
main()
{
__asm("movups %xmm0, _a");//movups xmm0, a ;
__asm("movups %xmm1, _b");//movups xmm1, b ;
__asm("movups %xmm1, %xmm0");//mulps xmm1, xmm0 ;
__asm("movups _a, %xmm1"); //movups a, xmm1 ;
int x;
for(x=0;x<4;x++)
{
printf("%f\n",a[x]);
}
}
|
Взял отсюда http://www.bloodshed.net/faq.html#16
Дополнение: Синксис описан здесь http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html | |
|
|
|
|
|
|
|
для: Vorox
(18.03.2011 в 00:53)
| | Спасибо с синтаксисом вроде немного понял. Но где-то подвох, после выполнения ASM кода в массиве оказывается белиберда. И еще косяк переменные вне тела функции объявлять надо:(.
В VisualStudio синтаксис вроде как более естественный.
Кстати небольшая опечатка у вас где действие mulps должно быть. | |
|
|
|
|
|
|
|
для: Miha_drinking_bout
(18.03.2011 в 13:29)
| | Насчет билеберды согласен :). Ни когда не использовал в девспп ассемблерные вставки, может еще что то не учел... | |
|
|
|