Добавил:
Mymnan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборка Часть1 / avmis_labs / неразобрано / 503 / Лаб_MMX / Денисик В.С / MMX / MMX / MMX
.cpp#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <Windows.h>
#pragma inline
using namespace std;
int main()
{
char mess_1[]="Enter string:";
char buf1[20];
char buf2[20];
ZeroMemory(buf1,20);
ZeroMemory(buf2,20);
unsigned _int64 _mm0;
unsigned _int64 _mm1;
puts(mess_1);
cin >> buf1;
puts(mess_1);
cin >> buf2;
for(int i = 0; i < 8; i++)
_asm
{
movq mm0, buf1[i]
PSRAW mm0, 8
movq mm1, buf2[0]
PSRAW mm1, 8
movq _mm0,mm0
movq _mm1,mm1
}
cout << endl << "mm0 " << _mm0 << endl;
cout << "mm1 " << _mm1 << endl;
_asm
{
PSUBD mm0, mm1 // команда вычитает элементы данных входного операнда из
// элементов данных выходного операнда. Если результат выходит за границу допустимого
//диапазона, то по правилам циклической арифметики соответствующее число единиц отсчитывается
//от другой границы диапазона. "Переноса" единицы из одного элемента данных в другой не происходит.
movq _mm0,mm0
}
cout << "mm0 " << _mm0 << endl;
getch();
return 0;
}