2.5.4. Команды преобразования типов ММХ

Команда Назначение Процессор

PACKSSWB приемник, источник Упаковка со знаковым насыщением ММХ

PACKSSDW приемник, источник

Команды упаковывают и насыщает слова со знаком в байты (РАСК88\УВ) или двойные слова со знаком в слова (РАСК88Б\У). Команда РАСК88\¥В копирует четыре слова (со знаком), находящиеся в приемнике (регистр ММХ), в 4 младших байта (со знаком) приемника и копирует четыре слова (со знаком) из источника (регистр ММХ или переменная) в старшие четыре байта (со знаком) приемника. Если значение какого-нибудь слова больше +127 (7Рп) или меньше -128 <80Ь), в байты помещаются числа +127 и -128 соответственно. Команда РАСК88Б\¥ аналогично копирует два двойных слова из приемника в два младших слова при­емника и два двойных слова из источника в два старших слова приемника. Если значение какого-нибудь двойного слова больше +32 767 (7РЕЕЬ) или меньше -32 768 (80 00п), в слова помещаются числа +32 767 и -32 768 соответственно.

Команда__•    Назначение__ Процессор

PACKUSWB Упаковка с беззнаковым насыщением ММХ

Копирует четыре слова (со знаком), находящиеся в приемнике (регистр ММХ), в 4 младших байта (без знака) приемника и копирует четыре слора (со

знаком) из источника (регистр ММХ или переменная) в старшие четыре байта (без знака) приемника. Если значение какого-нибудь слова больше 255 (0ЕЕп) или меньше О (00Ь), в байты помещаются числа 255 и 0 соответственно.

Команда

Назначение

Процессор

PUNPCKHBW приемник,источник

Распаковка и объединение

ММХ

 

старших элементов

 

PUNPCKHWD приемник.источник

Распаковка и объединение

ММХ

 

старших элементов

 

PUNPCKHDO приемник.источник

Распаковка и объединение

ММХ

 

старших элементов

 

Расширение 1А ММХ

1

PUNPCKHBW

71

6,

51

4,

3,

2,

1,

0,

 

7,

 

 

Рис. 15. Действие команды PUNPCKHBW

Команды распаковывают старшие элементы источника (регистр ММХ или пе­ременная) и приемника (регистр ММХ) и записывают их в приемник через один (см. рис. 15).

Команда РШРСКНВ\У объединяет по 4 старших байта источника и приемника, команда PUNPCKHWD - по 2 старших слова, а команда РТЖРСКРГОО. копирует в приемник по одному старшему двойному слову из источника и приемника.

Если источник содержит нули, эти команды фактически переводят старшую половину приемника из одного формата данных в другой, дополняя увеличивае­мые элементы нулями. PUNPCKHBW переводит упакованные байты в упакован­ные слова, PUNPCKHWD - слова в двойные слова, a PUNPCKHDQ - един­ственное старшее двойное слово приемника в учетверенное.

Команда

Назначение

Процессор

PUNPCKLBW приемник, источник Р1ШРСК1ЛЛН> приемник,источник PUNPCKLDQ приемник, источник

Распаковка и объединение младших элементов Распаковка и объединение младших элементов Распаковка и объединение младших элементов

ММХ ММХ ММХ

Команды распаковывают младшие элементы источника (регистр ММХ или переменная) и приемника (регистр ММХ) и записывают их в приемник через один аналогично предыдущим командам. Команда PUNPCKLBW объединяет по 4 младших байта источника и приемника, команда PUNPCKLWD объединяет по 2 младших слова, а команда PUNPCKLDQ копирует в приемник по одному младшему двойному слову из источника и приемника. Если источник содержит только нули, эти команды, аналогично РЕГМРСКН*, фактически переводят млад­шую половину приемника из одного формата данных в другой, дополняя увели­чиваемые элементы нулями.