Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 4
з курсу „ Архітектура комп’ютерів”
Тема:
Використання команди EMMS.
Фізичне розташування ММХ-регістрів.
Синтаксис та використанн команд множення.
Львів – 2005
1. Використання команди EMMS
MMX-команди виконуються в тому ж режимі процесора, що й команди з плаваючою комою. Тому при виконанні всіх MMX-команд (крім EMMS) "псується" слово стану регістрів з плаваючою комою. Команда EMMS забезпечує перехід процесора від виконання MMX-команд до виконання звичайних команд з плаваючою комою: вона встановлює значення 1 у всіх розрядах слова стану. Закінчуйте командою EMMS любий фрагмент програми, в якому є MMX-команди. Якщо цього не робити, то
операції з плаваючою комою будуть давати невірні результати;
інколи в результаті операцій з плаваючою комою будуть генеруватись виключення типу Stack overflow.
“Фізичне” розташування ММХ-регістрів
MMX-команди використовують вісім 64-розрядних регістрів. До регістрів забезпечується прямий доступ за іменами: MM0,..., MM7. Жодні інші команди не можуть звертатись до цих регістрів. "Фізично" регістри технології MMX розміщені в мантисах регістрів з плаваючою комою (біти 0-63). Таким чином, під час запису любого значення в MMX-регістр це значення попадає в один з регістрів з плаваючою комою.
При виконанні MMX-команд
всі біти порядку і знаковий біт у відповідному регістрі з плаваючою комою заповнюються одиницями (це біти 64-79)
все слово стану регістрів з плаваючою комою заповнюється нулями.
2. Синтаксис та використання команд множення.
MMX-команди множення попарно перемножують 16-розрядні слова операндів, що дає чотири 32-розрядних добутки.
Команда pmaddwd додає перший добуток до другого, а третій до четвертого. Суми записуються в 32-розрядні слова вихідного операнда.
Команда pmulhw записує в 16-розрядні слова вихідного операнда старші розряди кожного з чотирьох добутків, а pmullw - молодші розряди добутків.
Команди множення
Команда
b
w
d
q
pmadd
pmulh
pmull
- тип даних, що підтримується.
Стрілка показує від вхідного типу даних до вихідного.
3. Детально описати зміст заданих команд та результат їх виконання, якщо в ММ2 : 7F80 7E01 80FF 777F , а в ММ4 : 80FF 7F80 777F 0001.
Варіант 11.
pmulh MM1, MM2
Команда pmulhw (циклічна арифметика)Команда pmulhw попарно перемножує 16-розрядні слова зі знаком вхідного і вихідного операндів, що дає чотири 32-розрядних добутки. Старші розряди добутків записуються 32-розрядні слова вихідного операнду. Молодші розряди добутків відкидаються.
Вхідний операнд може знаходитись в MMX-регістрі або в пам’яті; вихідний операнд повинен знаходитись в MMX-регістрі.
MM1
7F80
7E01
80FF
777F
MM2
80FF
7F80
777F
0001
MM1
C0BF
3EC1
C4B7
0000
777F * 0001 = 0000 777F
80FF * 777F > прямий код > - (7F01 * 777F) = - 3B48 787F > доповняльний код > C4B7 8781
7E01 * 7F80 = 3EC1 7F80
7F80 * 80FF > прямий код > - (7F80 * 7F01) = - 3F40 FF80 > доповняльний код > C0BF 007F
Висновок: Виконуючи дану лабораторну роботу, я вивчив та детально ознайомитися із синтаксисом та використанням команд множення для MMX-процесорів.