Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 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-процесорів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!