С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 5

Вектора в sse3

28.05.2010, 09:43. Показов 1740. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Возникла следующая проблемма: нужна программа, которая будет перемножать вектора с помощью инструкции SSE3, но маи знания asm заканчиваются на x86. Помогите с программой пожайлуйста. В интернете не могу найти не чего похожего. Желательно с коментами. Не важен. но желательно код в tasm Буду очень признателен Вам.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2010, 09:43
Ответы с готовыми решениями:

SSE (SSE42, SSE41, SSSE3, SSE3, SSE2, SSE1)
Подскажите фреймворк \ библиотеку которая будет на базе SSE (SSE42, SSE41, SSSE3, SSE3, SSE2, SSE1) проверять строку на равенство, а так...

Найти выражение для: вектора скорости; вектора ускорения; модуля радиус-вектора
Товарищи, помогите пожалуйста решить. Радиус-вектор материальной точки задается выражением: r=(t^2+2)i+(3t^2+4)j Найти...

Определить, находится ли компонента вектора С с наименьшим значением в первой половине вектора
Даны векторы A, B, C. Получить y=min A. Все компоненты вектора В, предшествующие первой по порядку компоненте с наименьшим значением,...

5
28 / 24 / 0
Регистрация: 03.02.2010
Сообщений: 66
28.05.2010, 11:50
К сожалению конкретно векторных инструкций не существует. SSE позволяет работать с 4-мя FP32 или двумя FP64 но не векторным способом - скалярное произведение взять одной командой не получится . Если напишите конечную формулу для расчета - попытаюсь сделать код.
PS: Про сам SSE можно почитать здесь.
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 5
28.05.2010, 11:56  [ТС]
не правильно написал. нужно скалярное произведение 4х векторов. вот код в С++ со ставкой asm, его нужно реализовать в asm .
Четыре скалярных произведения, SSE/SSE3
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
VECTOR4F A1, A2, A3, A4, B1, B2, B3, B4;
__declspec(align(16)) float dot[4];
__asm
{
    movaps      xmm0, xmmword ptr[A1]   // 0 | A1.z | A1.y | A1.x
    movaps      xmm1, xmmword ptr[A2]   // 0 | A2.z | A2.y | A2.x
    movaps      xmm2, xmmword ptr[A3]   // 0 | A3.z | A3.y | A3.x
    movaps      xmm3, xmmword ptr[A4]   // 0 | A4.z | A4.y | A4.x
    movaps      xmm4, xmmword ptr[B1]   // 0 | B1.z | B1.y | B2.x
    movaps      xmm5, xmmword ptr[B2]   // 0 | B2.z | B2.y | B2.x
    movaps      xmm6, xmmword ptr[B3]   // 0 | B3.z | B3.y | B3.x
    movaps      xmm7, xmmword ptr[B4]   // 0 | B4.z | B4.y | B4.x
    mulps       xmm0, xmm4      // 0 | A1.z*B1.z | A1.y*B1.y | A1.x*B1.x
    mulps       xmm1, xmm5      // 0 | A2.z*B2.z | A2.y*B2.y | A2.x*B2.x
    mulps       xmm2, xmm6      // 0 | A3.z*B3.z | A3.y*B3.y | A3.x*B3.x
    mulps       xmm3, xmm7      // 0 | A4.z*B4.z | A4.y*B4.y | A4.x*B4.x
    haddps      xmm0, xmm1      // A2.z*B2.z | A2.y*B2.y+A2.x*B2.x |
                                // A1.z*B1.z | A1.y*B1.y+A1.x*B1.x
    haddps      xmm2, xmm3      // A4.z*B4.z | A4.y*B4.y+A4.x*B4.x |
                                // A3.z*B3.z | A3.y*B3.y+A3.x*B3.x
    haddps      xmm0, xmm2      // A4.B4 | A3.B3 | A2.B2 | A1.B1
    movaps      xmmword ptr[dot], xmm0
}
0
28 / 24 / 0
Регистрация: 03.02.2010
Сообщений: 66
28.05.2010, 12:10
А в чем собственно тогда проблема? Я что то не понимаю, если у вас уже есть код вычисления то что вам еще требуется сделать? Переписать под другой процессор? Сделать автономный модулья(DLL/Static Library) Или что?
0
69 / 74 / 0
Регистрация: 15.12.2008
Сообщений: 302
28.05.2010, 16:53
копипаст в asm модуль?
0
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 5
28.05.2010, 18:24  [ТС]
собрать под tasm
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2010, 18:24
Помогаю со студенческими работами здесь

Заполнить вектор значениями положительных элементов вектора C. Размерность вектора C произвольная
Заполнить вектор значениями положительных элементов вектора C. Размерность вектора C произвольная. Private Sub Command1_Click() Dim m...

Массив: Вычесть из каждого элемента действительного вектора C(c1,c2,..,c9) среднее арифметическое вектора.
Помогите решить, не знаю с чего начать: 1. Вычесть из каждого элемента действительного вектора C(c1,c2,..,c9) среднее арифметическое ...

Как обозначить значения внутри вектора для другого вектора итератором?
Например, в одном векторе есть числа 1, 3, 4. В другом векторе их 5: 25 95 45 65 75. Как сделать так, чтобы во втором векторе удалились...

Выделение столбцов из матрицы, сортировка полученного вектора, перестановка элементов вектора
Здравствуйте!Нужна помощь в пояснении. Дано задание в файле.По раздельности я примерно понимаю как это сделать,но я так понимаю это все...

Даны 2 вектора определить у какого вектора наибольшее количество положительных элементов
Даны 2 вектора определить у какого вектора наибольшее количество положительных элементов. Программу надо делать через функции, через Malloc...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru