Форум: Форум C++Разное
Новые темы: 00
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: asm VS DEVCpp
 
 автор: Miha_drinking_bout   (17.03.2011 в 17:14)   письмо автору
 
 

авильно скомпилировать в 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 не хочет. Мне думается надобно асемблер подключить, если да - то как и какой?

  Ответить  
 
 автор: Vorox   (18.03.2011 в 00:53)   письмо автору
 
   для: 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

  Ответить  
 
 автор: Miha_drinking_bout   (18.03.2011 в 13:29)   письмо автору
 
   для: Vorox   (18.03.2011 в 00:53)
 

Спасибо с синтаксисом вроде немного понял. Но где-то подвох, после выполнения ASM кода в массиве оказывается белиберда. И еще косяк переменные вне тела функции объявлять надо:(.
В VisualStudio синтаксис вроде как более естественный.
Кстати небольшая опечатка у вас где действие mulps должно быть.

  Ответить  
 
 автор: Vorox   (18.03.2011 в 20:14)   письмо автору
 
   для: Miha_drinking_bout   (18.03.2011 в 13:29)
 

Насчет билеберды согласен :). Ни когда не использовал в девспп ассемблерные вставки, может еще что то не учел...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования