-
Notifications
You must be signed in to change notification settings - Fork 0
Расширения процессора. MMX. Классификация команд
Ivan Bogatyrev edited this page Jun 12, 2023
·
1 revision
MX - Multimedia eXtensions - расширение для увеличения эффективности обработки больших потоков данных (изображения, звук, видео, ...), то есть для выполнения простых операций над массивами однотипных данных.
- пересылка двойных/учетверенных слов;
- упаковка со знаковым насыщением слов (приемник -> младшая половина приемника, источник -> старшая половина приемника, в случае наличия значащих разрядов в отбрасываемых частях происходит насыщение);
- упаковка слов с беззнаковым насыщением, распаковка и объединение старших элементов источника и приемника через 1
- поэлементное сложение (перенос игнорируется, побайтовое сложение)
- сложение/вычитание с насыщением
- беззнаковое сложение с насыщением
- вычитание (заем игнорируется)
- вычитание с насыщением
- старшое/младшее умножение (сохраняет старшую или младшую части результата в приемник)
- умножение и сложение (перемножает 4 слова, затем попарно складывает произведения двух старших и двух младших)
- проверка на равенство (Если пара равна - соответствующий элемент приёмника заполняется единицами, иначе - нулями)
- проверка на больше (Если элемент приёмника больше, то заполняется единицами, иначе - нулями)
- логическое И
- логическое ИЛИ
- логическое НЕ-И (штрих шеффера)
- XOR
- логический влево
- логический вправо
- арифметический вправо
Сдвиг, при котором уходящий бит исчезает, не влияя на оставшиеся биты, а на месте появившегося бита записывается 0.
При этом сдвиге слово рассматривается не просто как группа битов, а как целое число в дополнительном коде. При сдвиге влево ведет себя как логический сдвиг, а при сдвиге вправо уходящий бит исчезает, а на месте нового бита устанавливается бит, соответсвующий знаку числа.