Форум программистов, компьютерный форум, киберфорум
Наши страницы

Не могу запустить ассемблерную вставку на c++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ По названию страны определить название её континента http://www.cyberforum.ru/cpp-beginners/thread733789.html
Напишите пожалуйста две программы. 1.Перечисляемый тип. страна = (Германия, Куба, Бирма, Монако, Непал, Польша, Кения) континент = (Азия, Америка, Европа, Африка) страна s; континент k; По...
C++ ошибка в Dev C++ source not complete Отредактировала программу, смотрю ошибок вроде нет, откомпилировала, ошибок не обнаружено, с радостью запускаю и тут выдается маленькое такое окно с ошибкой, очень надо сделать эту работу, 20-ого... http://www.cyberforum.ru/cpp-beginners/thread733749.html
Вывести в алфавитном порядке все словосочетания, отделенные запятыми C++
Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо: вывести в алфавитном порядке все словосочетания, отделенные запятыми. Строку инициализировать в коде программы: ...
C++ Написать функцию F(S,pos), которая возвращает номер первого найденного пробела
Написать и протестировать функцию F(S,pos), которая анализирует строку S, начиная с позиции pos, и возвращает номер первого найденного пробела. Если пробела нет, возвращает 0; если pos <0 или больше...
C++ Вычислить значение многочлена для заданного значения x http://www.cyberforum.ru/cpp-beginners/thread733743.html
Задача: Многочлен Pn(x) задан массивом своих коэффициентов A(n+1). Вычислить значение многочлена для заданного значения x. Полезно использовать схему Горнера, требующую всего n трудоемких операций:...
C++ В матрице определить количество положительных, отрицательных элементов и нулей и максимальный элемент В матрице размерами N*M определить количество положительных, отрицательных элементов и нулей (N и M не больше 10) и максимальный элемент. Матрицу сформировать из случайных чисел в диапазоне от –10 до... подробнее

Показать сообщение отдельно
B9
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 5
16.12.2012, 20:19  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <time.h>
#include <iostream>
 
int Scalar(short* Vector1, short* Vector2, int count)
{
 int iSum;
float dot;
// считаем, что четвертый элемент каждого вектора равен нулю
__asm
{
    movaps      xmm0, xmmword ptr[Vector1]    // 0 | A.z | A.y | A.x
    movaps      xmm1, xmmword ptr[Vector2]    // 0 | B.z | B.y | B.x
    mulps       xmm0, xmm1              // 0 | A.z*B.z | A.y*B.y | A.x*B.x
    movhlps     xmm1, xmm0      // ? | ? | 0 | A.z*B.z
    unpcklps    xmm0, xmm0      // A.y*B.y | A.y*B.y | A.x*B.x | A.x*B.x
    movhlps     xmm2, xmm0      // ? | ? | A.y*B.y | A.y*B.y
    addss       xmm0, xmm1      // ? | ? | ? | A.x*B.x+A.z*B.z
    addss       xmm0, xmm2      // ? | ? | ? | A.x*B.x+A.y*B.y+A.z*B.z
    movss       dword ptr[dot], xmm0
}
 
 return iSum;
}
 
int main()
{
 const int  n = 10000000;
 short *Vector1 = new short[n];
 short *Vector2 = new
short[n];
 int i;
 
 srand((unsigned int)time(0));
 for(i=0;i<n;i++)
 {
  Vector1[i] = rand()%2000 - 1000;
  Vector2[i] = rand()%2000 - 1000;
 }
 
 int iSum=Scalar(Vector1, Vector2, n);
 
 delete []Vector1;
 delete []Vector2;
 return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru