🗊Презентация Команды mmx/xmm

Нажмите для полного просмотра!
Команды mmx/xmm, слайд №1Команды mmx/xmm, слайд №2Команды mmx/xmm, слайд №3Команды mmx/xmm, слайд №4Команды mmx/xmm, слайд №5Команды mmx/xmm, слайд №6Команды mmx/xmm, слайд №7Команды mmx/xmm, слайд №8Команды mmx/xmm, слайд №9Команды mmx/xmm, слайд №10Команды mmx/xmm, слайд №11Команды mmx/xmm, слайд №12Команды mmx/xmm, слайд №13Команды mmx/xmm, слайд №14Команды mmx/xmm, слайд №15Команды mmx/xmm, слайд №16Команды mmx/xmm, слайд №17Команды mmx/xmm, слайд №18Команды mmx/xmm, слайд №19Команды mmx/xmm, слайд №20Команды mmx/xmm, слайд №21

Вы можете ознакомиться и скачать презентацию на тему Команды mmx/xmm. Доклад-сообщение содержит 21 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Команды mmx/xmm
Лабораторная  работа  №2
Описание слайда:
Команды mmx/xmm Лабораторная работа №2

Слайд 2





К теме:
Технология MMX. Технология SSE. Регистры MMX/XMM, типы данных и команды MMX/ХММ.
Цель работы
Изучить  расширение системы команд MMX процессоров Intel.
Продолжительность работы - 4 часа.
Описание слайда:
К теме: Технология MMX. Технология SSE. Регистры MMX/XMM, типы данных и команды MMX/ХММ. Цель работы Изучить расширение системы команд MMX процессоров Intel. Продолжительность работы - 4 часа.

Слайд 3





Основы MMX-технологии
Описание слайда:
Основы MMX-технологии

Слайд 4





Основы MMX-технологии
Описание слайда:
Основы MMX-технологии

Слайд 5





Синтаксис MMX-команд
Описание слайда:
Синтаксис MMX-команд

Слайд 6





MMX-расширение
Описание слайда:
MMX-расширение

Слайд 7





MMX-расширение
Описание слайда:
MMX-расширение

Слайд 8





MMX-регистры
Описание слайда:
MMX-регистры

Слайд 9





MMX-регистры
Описание слайда:
MMX-регистры

Слайд 10





MMX-регистры
Описание слайда:
MMX-регистры

Слайд 11





SSE-команды
Описание слайда:
SSE-команды

Слайд 12





Задание
Создать консольное приложение, которое выполняет вычисления (в соответствии с вариантом) :
1) на языке Си,
2) на ассемблере, без команд MMX,
3) с использованием команд MMX.
После вычислений должны быть выведены время выполнения и результат для каждого случая.
Значения элементов матриц генерируются приложением (не вводятся с клавиатуры). Вычисления производятся много (1 млн) раз. Размер матриц (векторов) кратен количеству элементов в регистре ММХ.
Описание слайда:
Задание Создать консольное приложение, которое выполняет вычисления (в соответствии с вариантом) : 1) на языке Си, 2) на ассемблере, без команд MMX, 3) с использованием команд MMX. После вычислений должны быть выведены время выполнения и результат для каждого случая. Значения элементов матриц генерируются приложением (не вводятся с клавиатуры). Вычисления производятся много (1 млн) раз. Размер матриц (векторов) кратен количеству элементов в регистре ММХ.

Слайд 13





Пример
Найти скалярное произведение векторов a и b
int i;
short a_vect[16], b_vect[16];
short cnt = 16; 
int res = 0, res1 = 0;
double r;
int j, temp, sum = 0;
...//инициализация переменных
Описание слайда:
Пример Найти скалярное произведение векторов a и b int i; short a_vect[16], b_vect[16]; short cnt = 16; int res = 0, res1 = 0; double r; int j, temp, sum = 0; ...//инициализация переменных

Слайд 14





Пример
Найти скалярное произведение векторов a и b
Си:
		
for(j = 0; j < 16; j++)
 {
	temp = a_vect[j] * b_vect[j];
	sum+=temp;
}
Описание слайда:
Пример Найти скалярное произведение векторов a и b Си: for(j = 0; j < 16; j++) { temp = a_vect[j] * b_vect[j]; sum+=temp; }

Слайд 15





Пример
Найти скалярное произведение векторов a и b
Ассемблер без MMX:
cnt = 16;
_asm
{
	pusha    ; сохранить в стек все регистры
	xor     esi, esi
	xor     ecx, ecx
loop1:
	mov     ax,  a_vect[esi]  ; чтение из памяти 
	mov     bx,  b_vect[esi]  
  
          imul    ax,  bx
	add     cx,  ax
	add     esi, 2 ; short → шаг по 2 байта
	sub     cnt, 1 ; по 1 числу за итерацию
jnz     loop1
        
	mov     res1, ecx ; сохранить результат
	popa ; восстановить из стека сохранённые регистры
}
Описание слайда:
Пример Найти скалярное произведение векторов a и b Ассемблер без MMX: cnt = 16; _asm { pusha ; сохранить в стек все регистры xor esi, esi xor ecx, ecx loop1: mov ax, a_vect[esi] ; чтение из памяти mov bx, b_vect[esi] imul ax, bx add cx, ax add esi, 2 ; short → шаг по 2 байта sub cnt, 1 ; по 1 числу за итерацию jnz loop1 mov res1, ecx ; сохранить результат popa ; восстановить из стека сохранённые регистры }

Слайд 16





Пример
Найти скалярное произведение векторов a и b
loop1:
	mov     ax,  a_vect[esi]  ; чтение из памяти 
	mov     bx,  b_vect[esi]  
  
	imul    ax,  bx
	add     cx,  ax
	add     esi, 2 ; short → шаг по 2 байта
	sub     cnt, 1 ; по 1 числу за итерацию
jnz     loop1
        
mov     res1, ecx ; сохранить результат
Описание слайда:
Пример Найти скалярное произведение векторов a и b loop1: mov ax, a_vect[esi] ; чтение из памяти mov bx, b_vect[esi] imul ax, bx add cx, ax add esi, 2 ; short → шаг по 2 байта sub cnt, 1 ; по 1 числу за итерацию jnz loop1 mov res1, ecx ; сохранить результат

Слайд 17





Пример
Найти скалярное произведение векторов a и b
Ассемблер с MMX:
cnt = 16;
_asm
{
	pusha    ; сохранить в стек все регистры
	xor     esi, esi
	pxor    MM7, MM7
loop1:
	movq       MM0, a_vect[esi] ; чтение из памяти 
	movq       MM1, b_vect[esi]
        pmaddwd MM0, MM1
	paddd       MM7, MM0
	add     esi, 8
	sub     cnt, 4
jnz     loop1
	movq    MM0, MM7
	psrlq     MM7, 32
	paddd   MM7, MM0
	movd    res, MM7
	emms
	popa
}
Описание слайда:
Пример Найти скалярное произведение векторов a и b Ассемблер с MMX: cnt = 16; _asm { pusha ; сохранить в стек все регистры xor esi, esi pxor MM7, MM7 loop1: movq MM0, a_vect[esi] ; чтение из памяти movq MM1, b_vect[esi] pmaddwd MM0, MM1 paddd MM7, MM0 add esi, 8 sub cnt, 4 jnz loop1 movq MM0, MM7 psrlq MM7, 32 paddd MM7, MM0 movd res, MM7 emms popa }

Слайд 18





Пример
Найти скалярное произведение векторов a и b
Ассемблер с MMX:
	pusha    ; сохранить в стек все регистры
	xor     esi, esi
	pxor    MM7, MM7
;MM7 – накопитель произведений координат
Описание слайда:
Пример Найти скалярное произведение векторов a и b Ассемблер с MMX: pusha ; сохранить в стек все регистры xor esi, esi pxor MM7, MM7 ;MM7 – накопитель произведений координат

Слайд 19





Пример
Найти скалярное произведение векторов a и b
Ассемблер с MMX:
loop1:
	movq  MM0, a_vect[esi] ; чтение из памяти 
	movq  MM1, b_vect[esi]
	pmaddwd MM0, MM1
Описание слайда:
Пример Найти скалярное произведение векторов a и b Ассемблер с MMX: loop1: movq MM0, a_vect[esi] ; чтение из памяти movq MM1, b_vect[esi] pmaddwd MM0, MM1

Слайд 20





Пример
Найти скалярное произведение векторов a и b
Ассемблер с MMX:
loop1:
	movq  MM0, a_vect[esi] ; чтение из памяти 
	movq  MM1, b_vect[esi]
	pmaddwd MM0, MM1
	paddd       MM7, MM0 ;накопление в ММ7
	add     esi, 8 ; short → шаг по 2 байта * 4
	sub     cnt, 4 ; по 4 элемента за операцию
jnz     loop1
Описание слайда:
Пример Найти скалярное произведение векторов a и b Ассемблер с MMX: loop1: movq MM0, a_vect[esi] ; чтение из памяти movq MM1, b_vect[esi] pmaddwd MM0, MM1 paddd MM7, MM0 ;накопление в ММ7 add esi, 8 ; short → шаг по 2 байта * 4 sub cnt, 4 ; по 4 элемента за операцию jnz loop1

Слайд 21





Пример
Найти скалярное произведение векторов a и b
Ассемблер с MMX:
!!! В ММ7 сумма разбита на 2 части
	
	movq    MM0, MM7	;для сложения
	psrlq     MM7, 32	;обеих частей
	paddd   MM7, MM0	;суммы
	movd    res, MM7 ; сохранить результат
	emms ; вернуть режим сопроцессора
	popa ; восстановить регистры
Описание слайда:
Пример Найти скалярное произведение векторов a и b Ассемблер с MMX: !!! В ММ7 сумма разбита на 2 части movq MM0, MM7 ;для сложения psrlq MM7, 32 ;обеих частей paddd MM7, MM0 ;суммы movd res, MM7 ; сохранить результат emms ; вернуть режим сопроцессора popa ; восстановить регистры



Похожие презентации
Mypresentation.ru
Загрузить презентацию