Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
НУ”Львівська політехніка”
Кафедра ЕОМ
Лабораторна робота №4
з дисципліни”Архітектура комп’ютерів”
Використання команди EMMS. “Фізичне” розташування ММХ-регістрів
Використання команди EMMS
MMX-команди виконуються в тому ж режимі процесора, що й команди з плаваючою комою. Тому при виконанні всіх MMX-команд (крім EMMS) "псується" слово стану регістрів з плаваючою комою. Команда EMMS забезпечує перехід процесора від виконання MMX-команд до виконання звичайних команд з плаваючою комою: вона встановлює значення 1 у всіх розрядах слова стану. Закінчуйте командою EMMS любий фрагмент програми, в якому є MMX-команди. Якщо цього не робити, то
операції з плаваючою комою будуть давати невірні результати;
інколи в результаті операцій з плаваючою комою будуть генеруватись виключення типу Stack overflow.
“Фізичне” розташування ММХ-регістрів
MMX-команди використовують вісім 64-розрядних регістрів. До регістрів забезпечується прямий доступ за іменами: MM0,..., MM7. Жодні інші команди не можуть звертатись до цих регістрів. "Фізично" регістри технології MMX розміщені в мантисах регістрів з плаваючою комою (біти 0-63). Таким чином, під час запису любого значення в MMX-регістр це значення попадає в один з регістрів з плаваючою комою. При виконанні MMX-команд
всі біти порядку і знаковий біт у відповідному регістрі з плаваючою комою заповнюються одиницями (це біти 64-79)
все слово стану регістрів з плаваючою комою заповнюється нулями.
Синтаксис та використання команд множення.
MMX-команди множення попарно перемножують 16-розрядні слова операндів, що дає чотири 32-розрядних добутки. Команда pmaddwd додає перший добуток до другого, а третій до четвертого. Суми записуються в 32-розрядні слова вихідного операнда. Команда pmulhw записує в 16-розрядні слова вихідного операнда старші розряди кожного з чотирьох добутків, а pmullw - молодші розряди добутків.
Команди множення
Команда
b
w
d
q
pmadd
pmulh
pmull
- тип даних, що підтримується.Стрілка показує від вхідного типу даних до вихідного.
Детально описати зміст заданих команд та результат їх виконання, якщо в ММ2 : 7F80 7E01 80FF 777F , а в ММ4 : 80FF 7F80 777F 0001.
Варіант 13:
pmaddwd MM2, MM4
Команда pmaddwd (циклічна арифметика)Команда pmaddwd попарно перемножує 16-розрядні слова зі знаком вхідного и вихідного операндів. Це дає чотири 32-розрядних добутки. Потім перший добуток додається до другого, а третій до четвертого. Суми записуються в 32-розрядні слова вихідного операнда.
Вхідний операнд може знаходитись в MMX-регістрі або в пам’яті; вихідний операнд повинен знаходитись в MMX-регістрі.
7F80 7E01 80FF 777F
80FF 7F80 777F 0001
7F008000 3C36FF00
Результат:
7F008000 3C36FF00
777F*0001=777F
80FF*777F=3C368781
777F+3C368781=3C36FF00
7E01*7F80=3EC17F80
7F80*80FF=403F0080
3EC17F80+403F0080=7F008000
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!