logo

Главная Система команд x86 Набор команд MMX PCMPGTW

Система команд 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

PCMPGTW

Сравнить упакованные слова (больше/не больше)

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

OF

DF

IF

TF

SF

ZF

AF

PF

CF

 

Код

Команда

Описание

Пример

0F 64 /r

PCMPGTB mm,mm/m64

Проверить, больше ли упакованные байты из mm соответствующих байтов из mm/m64, по результатам сравнения установить mm

pcmpgtb mm2,mm1

0F 65 /r

PCMPGTW mm,mm/m64

Проверить, больше ли упакованные слова из mm соответствующих слов из mm/m64, по результатам сравнения установить mm

pcmpgtb mm2,[ebp]

0F 66 /r

PCMPGTD mm,mm/m64

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

pcmpgtd mm2,mm3

Описание:

Команда PCMPGT сравнивает знаковые элементы операнда-назначения с соответствующими  знаковыми элементами операнда-источника. Если значение элемента операнда-назначения больше, чем соответствующее значение элемента источника, то в соответствующий элемент операнда-назначения записываются все единицы, в противном случае записываются все нули.

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

Команда PCMPGTB сравнивает знаковые байты операнда-назначения со знаковыми байтами операнда-источника и устанавливает байты операнда-назначения в соответствии с результатом.

Команда PCMPGTW сравнивает знаковые слова операнда-назначения со знаковыми словами операнда-источника и устанавливает слова операнда-назначения в соответствии с результатом.

Команда PCMPGTD сравнивает знаковые двойные слова операнда-назначения со знаковыми двойными словами операнда-источника и устанавливает двойные слова операнда-назначения в соответствии с результатом.

Операция:

IF Команда PCMPGTB

THEN

  IF DEST(7..0) > SRC(7..0)

     THEN DEST(7 0) = FFH;

     ELSE DEST(7..0) = 0;

  FI;

  (* Продолжить сравнение байтов со 2-го по 7-й в DEST и SRC *)

  IF DEST(63..56) > SRC(63..56)

     THEN DEST(63..56) = FFH;

     ELSE DEST(63..56) = 0;

  FI;

ELSE IF Команда PCMPGTW

THEN

  IF DEST(15..0) > SRC(15..0)

     THEN DEST(15..0) = FFFFH;

     ELSE DEST(15..0) = 0;

  FI;

  (* Продолжить сравнение байтов со 2-го по 7-й в DEST и SRC *)

  IF DEST(63..48) > SRC(63..48)

     THEN DEST(63..48) = FFFFH;

     ELSE DEST(63..48) = 0;

  FI;

ELSE  (* Команда PCMPGTD *)

  IF DEST(31..0) > SRC(31..0)

     THEN DEST(31..0) = FFFFFFFFH;

     ELSE DEST(31..0) = 0;

  FI;

  IF DEST(63..32) > SRC(63..32)

     THEN DEST(63..32) = FFFFFFFFH;

     ELSE DEST(63..32) = 0;

  FI;

FI;

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


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

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




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

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

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