Відкрити головне меню

MMX (Multimedia Extensions — мультимедійні розширення) — комерційна назва додаткового набору інструкцій, що виконують характерні для процесів кодування / декодування потокових аудіо / відео даних дії за одну машинну інструкцію. Вперше з'явився в процесорах Pentium MMX. Розроблений у першій половині 1990-х.

Текст вилучений зі статті через підозру в порушенні авторських прав
Copyright.svg

Текст, який раніше перебував на цій сторінці, запідозрений у порушенні авторських прав через те, що є дослівним перекладом з таких джерел:

http://www.radiotex.narod.ru/mmx.htm



Тому, хто поставив цей шаблон:
на сторінку обговорення користувача, який розмістив цю статтю, чи додав текст з порушенням авторського права, варто додати повідомлення {{subst:Nothanks tr|MMX|url=http://www.radiotex.narod.ru/mmx.htm }} --~~~~.


Увага До уваги користувача, який розмістив цю статтю

Не редагуйте статтю зараз, навіть якщо ви збираєтеся її переписати. Додержуйтеся вказівок нижче.

  1. Напишіть хоча б гарний накид статті на цій підсторінці. Зверніть увагу: не треба копіювати текст, що порушує авторські права, на зазначену підсторінку й редагувати його. Якщо ви взялися за написання нової статті, не забудьте сповістити про це на сторінці обговорення.
  2. Залиште все як є, і тоді стаття буде вилучена.

У випадку, якщо новий текст написаний не буде, ця стаття буде вилучена через тиждень після появи цього попередження. (Детальніше див. документацію шаблону.)

Вихідний текст цієї статті з можливим порушенням копірайту можна знайти в історії змін.

Зверніть увагу, що розміщення у Вікіпедії матеріалів, включаючи дослівний переклад, автор яких не надав явного дозволу на їхнє використання відповідно до ліцензії GNU FDL без незмінюваних секцій та Creative Commons із зазначенням автора / розповсюдження на тих самих умовах, може бути порушенням законів про авторське право. Користувачі, які додають до Вікіпедії такі матеріали, можуть бути тимчасово позбавлені права редагувати статті.

Незважаючи ні на що, ми завжди раді вашим оригінальним статтям.

Дякуємо.


Регістри MMXРедагувати

Розширення MMX включає в себе вісім 64-бітних регістрів загального користування MM0-MM7. Для сумісності зі способами збереження стану процесора в існуючих ОС Intel була змушена об'єднати в програмній моделі процесора вісім регістрів MMX з мантисами восьми регістрів FPU (Математичний співпроцесор). Апаратно це можуть бути різні пристрої, але з точки зору програміста — це одні й ті ж регістри. Таким чином, не можна одночасно користуватися командами Математичного співпроцесора і MMX.

Типи даних MMXРедагувати

Команди технології MMX працюють з 64-бітними цілочисельними даними, а також з даними, упакованими в групи (вектори) загальною довжиною 64 біта. Такі дані можуть перебувати в пам'яті або у восьми MMX-регістрах.

Команди технології MMX працюють з такими типами даних:

  • Упаковані байти (вісім байтів в одному 64-розрядному регістрі) (англ. packed byte);
  • упаковані слова (чотири 16-розрядних слова в 64-розрядному регістрі) (packed word);
  • Упаковані подвійні слова (два 32-розрядних слова в 64-розрядному регістрі) (packed doubleword);
  • 64-розрядні слова (quadword).

СинтаксисРедагувати

MMX - команди мають такий синтаксис: instruction [dest, src] Тут instruction  — ім'я команди, dest позначає вихідний операнд, src  — вхідний операнд.

У систему команд введено 57 додаткових інструкцій для одночасної обробки декількох одиниць даних. Більшість команд мають суфікс, який визначає тип даних і використану арифметику:

  • US (unsigned saturation) — арифметика з насиченням[en], дані без знака.
  • S або SS (signed saturation) — арифметика з насиченням, дані зі знаком. Якщо у суфіксі немає ні S, ні SS, використовується циклічна арифметика (wraparound).
  • B, W, D, Q вказують тип даних. Якщо у суфіксі є дві з цих букв, перша відповідає вхідному операнду, а друга — вихідно.

Нові інструкції включають такі групи:

  • Команди пересилання даних (Data Transfer Instructions) між регістрами MMX і цілочисельними регістрами і пам'яттю;
  • Команди перетворення типів
  • Арифметичні операції (Arithmetic Instructions), що включають додавання і віднімання в різних режимах, множення і комбінацію множення і складання;
  • Команди порівняння (Comparison Instructions) елементів даних на рівність чи за величиною;
  • Логічні операції (Logical Instructions) — І, І-НЕ, АБО і виключаюче АБО, що виконуються над 64 бітними операндами;
  • Зсувні операції (Shift Instructions) логічні і арифметичні;
  • Команди управління станом (Empty MMX State) очищення MMX — установка ознак порожніх регістрів в слові тегів.

Інструкції MMX не впливають на флаги умов. Регістри MMX, на відміну від регістрів FPU, адресуються фізично, а не відносно TOS. Будь-яка інструкція MMX обнуляє поле TOS регістра стану FPU. Інструкції MMX доступні з будь-якого режиму процесора.

Див. такожРедагувати

ДжерелаРедагувати

ЛітератураРедагувати

  • Зубков С. В. Assembler для DOS, Windows, UNIX. 3-тє вид., Стер. — М.: ДМК Прес; СПб. : Питер, 2004. — 608 с.

ПосиланняРедагувати