Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 2
з курсу „ Архітектура комп’ютерів”
Тема:
Нові типи даних в ММХ-технології.
Знакові та беззнакові дані. Циклічна арифметика.
Виконав:
студент групи КІ-3
Львів – 2005
Мета роботи: Вивчити та детально ознайомитися із синтаксисом та використанням команд зсувів MMX.
Тереотичні відомості
Типи даних
Команди технології MMX працюють з наступними типами даних:
* упаковані байти (вісім байтів в одному 64-розрядному регістрі)
* упаковані слова (чотири 16-розрядних слова в 64-розрядному регістрі)
* упаковані подвійні слова (два 32-розрядних слова в 64-розрядному регістрі)
* 64-розрядні слова.
По-англійському ці типи даних називаються, відповідно: packed byte, packed word, packed doubleword і quadword.
Дані зі знаком і без знака
В арифметиці з насиченням MMX-команди додавання, вирахування й упакування даних можуть обробляти числа з чи знаком без знака.
Дані зі знаком і без знака мають різний припустимий діапазон. Отже, якщо використовується арифметика з насиченням, то при виході результату операції за межі припустимого діапазону у вихідний операнд будуть записані різні значення в залежності від типу даних.
Циклічна арифметика (wraparound arithmetic)
Якщо команда використовує циклічну арифметику і результат операції виходить за двійкову розрядну сітку типу даних, що використовується, то "лишні" старші біти результату відкидаються. Тобто, якщо результат перевищує максимально молливе значення на [n] одиниць, то результатом вважається [мінімальне значення + n – 1].
MMX-команди зсуву виконують зсув кожного елемента даних (16-, 32- чи 64-розрядного слова) у вихідному операнде на величину, що задається вхідним операндом.
psll, psra, psrl
Команди psra (арифметичний зсув праворуч)
Команди psra виконують зсув елементів даних (16- чи 32-розрядних слів) у вихідному операнді на число біт, що задається вхідним операндом. Якщо зсувається додатнє число, то старші розряди, що звільнилися, заповнюються нулями, а якщо від’ємне, то одиницями.
Вхідний операнд може бути безпосереднім операндом або знаходитися чи MMX-регістрі чи в пам'яті. Вихідний операнд повинен знаходитися в MMX-регістрі.
Підтримуються команди: psraw, psrad.
Команди psrl (логічний зсув праворуч)
Команди psrl виконують зсув елементів даних (16-, 32- чи 64-розрядних слів) у вихідному операнді на число біт, що задається вхідним операндом. Старші розряди, що звільнилися, заповнюються нулями.
Вхідний операнд може бути безпосереднім операндом або знаходитися чи MMX-регістрі чи в пам'яті. Вихідний операнд повинен знаходитися в MMX-регістрі.
Підтримуються команди: psrlw, psrld, psrlq.
Завдання
Детально описати зміст заданих команд та результат їх виконання, якщо в
ММ2 : 80FF 7F80 777F 0001, а в ММ4 : 0001 8001 0002 8002.
Виконання роботи
psrld MM4 , 3 - це MMX-команда, яка виконує логічний порозрядний зсув вправо елементів даних (в нашому випадку doubleword - 32 розряди) першого операнду (MM4) на кількість біт, що задається другим операндом (3). Старші розряди, що звільнилися, заповнюються нулями.
Зсув на 3 розряди виконується незалежно в межах блоків по 32 біти.
Результат:
psrad MM2 , 5 - це MMX-команда, яка виконує арифметичний зсув вправо елементів даних (doubleword - 32 розряди) першого операнду (MM2) на кількість біт, що задається другим операндом (5).
Зсув на 5 розрядів виконується незалежно в межах блоків по 32 біти.
Результат:
Висновок: Виконуючи дану лабораторну роботу, я вивчив та детально ознайомитися із синтаксисом та використанням команд зсувів для MMX-процесорів.