Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
PACKUSWB
Влияние команды на флаги и форматы команды:
O |
D |
I |
T |
S |
Z |
A |
P |
C |
|
|
|
|
|
|
|
|
|
0F 67 /r |
PACKUSWB mm,mm/m64 |
Упаковать с насыщением беззнаковые слова из mm и mm/m64 в байты, результат поместить в mm |
packuswb mm1,mm2 |
Описание:
Команда PACKUSWB упаковывает 4 знаковых слова из обоих операндов в 8 беззнаковых байт. Операндом-назначением является MMX-регистр. Операндом-источником может быть как MMX-регистр так и операнд в памяти.
Элементы операндов преобразовываются в элементы c в два раза меньшей длиной, используя принцип насыщения. В младшую часть результата записывается упакованный операнд-назначение, а в старшую часть — упакованный операнд-источник.Если значение слова больше или меньше границ диапазона беззнакового байта, то результат упаковки насыщается соответственно до FFh или до 00h.
Операция:
DEST(7..0) = SaturateSignedWordToUnsignedByte DEST(15..0);
DEST(15..8) = SaturateSignedWordToUnsignedByte DEST(31..16);
DEST(23..16) = SaturateSignedWordToUnsignedByte DEST(47..32);
DEST(31..24) = SaturateSignedWordToUnsignedByte DEST(63..48);
DEST(39..32) = SaturateSignedWordToUnsignedByte SRC(15..0);
DEST(47..40) = SaturateSignedWordToUnsignedByte SRC(31..16);
DEST(55..48) = SaturateSignedWordToUnsignedByte SRC(47..32);
DEST(63..56) = SaturateSignedWordToUnsignedByte SRC(63..48);
Особые ситуации защищенного режима:
#GP(0), если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS, GS или нулевой селектор.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#UD, если CRO.EM=1.
#NM, если CRO.TS=1.
#MF, если есть отложенные необработанные незамаскированные исключения FPU.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память при текущем уровне привилегий равном 3.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов в сегментах CS, DS, ES, FS или GS.
#UD, если CRO.EM=1.
#NM, если CRO.TS=1.
#MF, если есть отложенные необработанные незамаскированные исключения FPU.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru