logo

Главная Система команд x86 Набор команд 3DNow! PAVGUSB

Система команд x86

Программирование - Архитектура и система команд микропроцессоров x86
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

PAVGUSB

Вычислить средние для упакованных беззнаковых байтов

Влияние команды на флаги и форматы команды:

OF

DF

IF

TF

SF

ZF

AF

PF

CF

                 

 

Код/Суфф.

Команда

Описание

Пример

0F OF / BF

PAVGUSB mm,mm/m64

Вычислить средние значения для упакованных беззнаковых байтов из mm и mm/m64, результаты поместить в mm

pavgusb mm1,[ecx]

Описание:

Команда PAVGUSB вычисляет средние значения для пар соответствующих байтов операнда-источника и операнда-назначения, которые должны содержать упакованные целочисленные беззнаковые байты. Результаты помещаются в операнд-назначение.

Операндом-назначением является MMX-регистр. Операндом-источником может быть как MMX-регистр, так и операнд в памяти.

Усреднение осуществляется следующим образом, к каждому байту операнда-источника добавляется соответствующий байты из операнда-назначения, затем к 9-разрядным промежуточным значениям добавляются 0x001h и прозводится деление на 2 (перемещение вправо на один разряд), далее, восемь 8-разрядных результатов без знака сохраняются в регистре MMX, определенном как операнд-назначение.

Команда PAVGUSB может использоваться для пиксельного усреднения в процедурах компенсации движения в MPEG-2 и операциях масштабирования. Для примера, для исходных значений операндов 0xFFFF010F_0070079Ah и 0xFF00FF10_0144F7A8h после выполнения команды PAVGUSB будет получено усредненное значение 0xFF808010_015A7FA1h.

Операция:

DEST[63:56] = (DEST[63:56] + SRC[63:56] + 01h) / 2;

DEST[55:48] = (DEST[55:48] + SRC[55:48] + 01h) / 2;

DEST[47:40] = (DEST[47:40] + SRC[47:40] + 01h) / 2;

DEST[39:32] = (DEST[39:32] + SRC[39:32] + 01h) / 2;

DEST[31:24] = (DEST[31:24] + SRC[31:24] + 01h) / 2;

DEST[23:16] = (DEST[23:16] + SRC[23:16] + 01h) / 2;

DEST[15:8] = (DEST[15:8] + SRC[15:8] + 01h) / 2;

DEST[7:0] = (DEST[7:0] + SRC[7:0] + 01h) / 2;

Особые ситуации защищенного режима:

#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) при невыровненной ссылке в память.


Входит в группу команд: Набор команд 3DNow!




Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru

Top.Mail.Ru       Сервер радиолюбителей России - схемы, документация,

 соревнования, дипломы, программы, форумы и многое другое!   схемы новости электроники