2.5.2. Типы данных ММХ

ММХ использует четыре данных:

Dучетверенное слово - простое 64-битное число;

□ упакованные двойные слова - два 32-битных двойных слова, упакованные в 64-битный тип данных. Двойное слово 1 занимает биты 63-32, и двойное слово 0 - биты 31-0;

□ упакованные слова - четыре 16-битных слова, упакованные в 64-битный тип данных. Слово 3 занимает биты 63-48, слово 0 - биты 15-0;

Q упакованные байты - восемь байт, упакованных в 64-битный тип данных. Байт 7 занимает биты 63-56, байт 0 - биты 7-0.

Команды ММХ перемещают упакованные данные в память или в обычные регистры как целое, но выполняют арифметические и логические операции над каждым элементом по отдельности.

Арифметические операции в ММХ могут использовать специальный способ обработки переполнений и антипереполнений - 'насыщение. Если результат опе­рации больше, чем максимальное значение для его типа данных (+127 для байта со знаком), то результат подразумевают равным этому максимальному значению. Если он меньше минимального значения - соответственно его считают равным минимально допустимому значению. Например, при операциях с цветом насыще­ние позволяет ему превращаться в чисто белый при переполнении и в чисто чер­ный при антипереполнении, в то время как обычная арифметика привела бы к не­желательной инверсии цвета.