Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 5
з курсу „ Архітектура комп’ютерів”
Тема:
Сумісність з попередніми програмами.
Виключення, що генеруються ММХ-командами.
Синтаксис та використання команд упаковки/розпаковки.
Львів – 2005
Сумісність з попередніми програмами
Технологія MMX розширює функціональні можливості процесорів архітектури Intel при повній сумісності з програмами для минулих поколінь процесорів. Все ПЗ, створене для раніше випущених процесорів, без жодних змін може виконуватися на MMX-процесорах.
MMX-команди "спілкуються" з ОС точно так, як і команди з плаваючою комою. Механізм збереження і відновлення стану обчислень з плаваючою комою застосований і для збереження (відновлення) стану програми, що використовує технологію MMX. Фактично технологія MMX не означає "нового" режиму роботи процесорів архітектури Intel: MMX-команди виконуються в тому ж режимі процесора, що і команди з плаваючою комою.
Виключення, що генеруються MMX-командами
MMX-команди ніколи не генерують арифметичні виключення. Але в результаті виконання цих команд можуть генеруватися переривання арифметики з плаваючою комою, якщо до виконання MMX-команди вже було згенеровано виключення "плаваючої" арифметики.
MMX команди можуть генерувати виключення по доступу до пам’яті.
Команди упаковки і розпаковки
MMX-команди упаковки перетворюють довгі елементи даних (16- і 32-розрядні слова) в більш короткі. Якщо вихідне значення "не поміщається" в короткому елементі даних, то відбувається "насичення" - результатом вважається граничне значення допустимого діапазону вихідного типу даних.
Команди розпаковки попарно об’єднують елементи даних з обох операндів в більш довгі елементи вихідного операнда. Цими командами можна користуватися для підвищення кількості значимих розрядів при обчисленнях.
Детально описати зміст заданих команд та результат їх виконання, якщо в
ММ1 : 7F80 7E01 80FF 777F , в ММ2 : 80FF 7F80 777F 0001, в ММ3 : 7FFF FFFF 80FF AA55.
11.
punpcklwd MM2, MM3
packsswb MM1, MM2
Команда
b
w
d
q
packss
packus
punpckh
punpckl
Команди packss__ (дані зі знаком, арифметика з насиченням)
Команди packss перетворюють довгі елементи даних (16- і 32-розрядні слова зі знаком) в більш короткі (байти чи 16-розрядні слова зі знаком). Якщо вихідне значення було за межами допустимого діапазону для вихідного типу даних, то результатом упаковки вважається найближче граничне значення діапазону.
Вхідний операнд може знаходитися в MMX-регістрі чи в пам’яті; Вихідний операнд повинен міститися в MMX-регістрі.
Приклад:
packsswb MM1, MM2 – перетворення з word в byte
MM1
7F80
7E01
80FF
777F
MM2
80FF
7F80
777F
0001
MM1
80
7F
7F
01
7F
7F
80
7F
Команди punpckl__
Команди punpckl попарно об’єднують вихідні елементи даних (байти, 16- чи 32-розрядні слова), що знаходяться в молодших 32 розрядах обох операндів. Отримані в результаті довші елементи даних записуються в вихідний операнд. Вихідні значення старших розрядів операндів на результат не впливають.
Вхідний операнд може міститися в MMX-регістрі або в пам’яті; Вихідний операнд повинен міститися в MMX-регістрі.
Приклад:
punpcklwd MM1, MM2 – перетворення з word в double word
MM2
80FF
7F80
777F
0001
MM3
7FFF
FFFF
80FF
AA55
MM2
80FF 7FFF
AA55 0001
Висновок: Виконуючи дану лабораторну роботу, я ознайомився з використанням команд технології MMX, зокрема команд упаковки і розпаковки.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!