
Лабораторная работа №5,6
Тема: Технология SIMD. Расширение ММХ.
Цель: Научиться использовать команды ММХ при работе с целочисленными данными.
Задание содержит четыре варианта, определяемые по номеру группы и четному или нечетному номеру студента в группе. Для выполнения заданий необходимо освоить все варианты команд сложения, умножения, упаковки и распаковки, перемещения данных.
Задание:
Написать программу сложения двух матриц А и В. Если у студента по варианту матрица А, матрицу В он берет с другой группы (А+В). Если по варианту матрица В, матрица А берется с другой группы (В+А).
Написать программу умножения двух матриц А и В. Если у студента по варианту матрица А, матрицу В он берет с другой группы (АВ). Если по варианту матрица В, матрица А берется с другой группы (ВА).
Группа АЕ-112
Нечетные номера А
|
Четные номера В
|
Группа АЕ-113
Нечетные номера А
|
Четные номера В
|
Написать программу, осуществляющую заданную операцию над элементами матрицы:
Операция |
№ |
pavgw |
0 |
pextrw |
1 |
pinsrw |
2 |
pmaxsw |
3 |
pminsw |
4 |
pmovmskb |
5 |
Номер операции определяется как Nmod5, где N – номер студента в группе. Результат представляется в виде квадратной матрицы-результата.
Состав протокола:
титульный лист;
задание на работу;
описание переменных;
текст программы;
графические изображения результатов выполнения программы.
Лабораторная работа №7,8
Тема: Технология SIMD. Расширение SSE.
Цель: Научиться использовать команды SSE расширений при обработке чисел представленных в формате IEEE-754.
Задание:
Решить систему уравнений методом обратной матрицы.
|
2x1 - 4x2 + 9x3 = 28 7x1 + 3x2 - 6x3 = -1 7x1 + 9x2 - 9x3 = 5 |
|
x1 + x2 - 3x3 = -1 x1 - x2 + x3 = -4 x1 + x2 + 4x3 = 2 |
|
x1 + 3x2 + x3 = 2 2x1 + x2 + 3x3 = 3 2x1 + x2 + 2x3 = 8 |
|
3x1 + 4x2 + 2x3 = 8 2x1 - x2 - 3x3 = -1 x1 + 5x2 + x3 = 0 |
|
3x1 + 2x2 = 0 x1 - x2 + 2x3 = 0 4x1 - 2x2 + 5x3 = 0 |
|
3x1 - 2x2 + 4x3 = 12 3x1 + 4x2 - 2x3 = 6 2x1 - x2 - x3 = -9 |
|
2x1 + 5x2 + x3 = 0 4x1 + 6x2 + 3x3 = 0 x1 - x2 - 2x3 = 0 |
|
x1 + 2x2 + 4x3 = 0 5x1 + x2 + 2x3 = 0 4x1 - x2 - 2x3 = 0 |
|
- 3x1 - 4x2 + 8x3 = 29.7 7x1 + 9x2 + x3 = -30.2 2x1 + x2 = -1 |
|
2x1 - 3x2 + x3 = 1 x1 + x2 + x3 = 6 x1 - x2 - x3 = 0 |
|
x1 - x2 + x3 = 3 2x1 + x2 + x3 = 11 x1 + x2 + 2x3 = 8 |
|
2x1 + 13x2 - 10x3 = -10 3x1 + 19x2 - 11x3 = -12 x1 + 6x2 - 3x3 = -3 |
|
5x1 + 8x2 - x3 = -7 x1 + 2x2 + 3x3 = 1 2x1 - 3x2 + 2x3 = 9 |
|
2x1 - x2 + x3 = 11 x1 + 4x2 - 3x3 = 2 3x1 + x2 - 7x3 = 8 |
|
5x1 + x2 - 3x3 = -2 4x1 + 3x2 + 2x3 = 16 2x1 - 3x2 + x3 = 17 |
|
3x1 + 4x2 + 2x3 = 8 2x1 - x2 - 3x3 = -4 x1 + 5x2 + x3 = 0 |
|
x1 + 2x2 + x3 = 8 - 2x1 + 3x2 - 3x3 = -5 3x1 - 4x2 + 5x3 = 10 |
|
2x1 + x2 - x3 = 5 x1 - 2x2 + 2x3 = -5 7x1 + x2 - x3 = 10 |
|
2x1 + 4x2 + x3 = 5 x1 - 4x2 = 2 3x1 + 2x2 + x3 = 7 |
|
4x1 - 2x2 + x3 = 3 3x1 + 5x3 = 8 x1 + x2 + 2x3 = 4 |
Номер варианта определяется по номеру студента в группе. Результат представляется в виде вектора-столбца.
Состав протокола:
титульный лист;
задание на работу;
описание переменных;
текст программы;
графические изображения результатов выполнения программы.
Список литературы
Крупник А. Б. Изучаем ассемблер. – СПб.: Питер, 2005.
Ирвин Кип. Язык ассемблера для процессоров Intel. – М.: Вильямс, 2005.
Магда Ю. С. Ассемблер для процессоров Intel Pentium. – СПб.: Питер, 2006.
Intel 64 and IA-32 Architectures Software Developer’s Manual, 2011