logo

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

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

MAXPS

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

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

I

D

Z

O

U

P

*

*

 

 

 

 

 

Код

Команда

Описание

Проц.

Пример

0F 5F /r

MAXPS xmm1,xmm2/m128

Сравнить короткие вещественные значения из xmm1 соответствующими короткими вещественными значениями из xmm2/m128, наибольшие из них поместить в xmm1

Pentium III

maxps xmm2,xmm3

Описание:

Команда MAXPS производит сравнение упакованных коротких вещественных значений из операнда-источника (SIMD-регистр или операнд в памяти) с соответствующими короткими вещественными значениями в операнде-назначении. В операнд-назначение возвращаются наибольшие из сравниваемых значений.

Если сравниваемые значения оба нулевые, то в операнд-назначение помещается значение из операнда-источника (xmm2/mm128). Если в операнде-источнике содержится SNaN, то в операнд-назначение будет возвращено именно это значение SNaN (не преобразованное в QNaN).

Операция:

IF (DEST[31-0]=NaN) THEN

  DEST[31-0] = SRC[31-0];

ELSE

  IF (SRC[31-0] = NaN) THEN

     DEST[31-0] = SRC[31-0];

  ELSE

     IF (DEST[31-0] > SRC/m128[31-0]) THEN

        DEST[31-0] = DEST[31-0];

     ELSE

        DEST[31-0] = SRC/m128[31-0];

     FI;

  FI;

FI;

IF (DEST[63-32]=NaN) THEN

  DEST[63-32] = SRC[63-32];

ELSE

  IF (SRC[63-32] = NaN) THEN

     DEST[63-32] = SRC[63-32];

  ELSE

     IF (DEST[63-32] > SRC/m128[63-32]) THEN

        DEST[63-32] = DEST[63-32];

     ELSE

        DEST[63-32] = SRC/m128[63-32];

     FI;

  FI;

FI;

IF (DEST[95-64]=NaN) THEN

  DEST[95-64] = SRC[95-64];

ELSE

  IF (SRC[95-64] = NaN) THEN

     DEST[95-64] = SRC[95-64];

  ELSE

     IF (DEST[95-64] > SRC/m128[95-64]) THEN

        DEST[95-64] = DEST[95-64];

     ELSE

        DEST[95-64] = SRC/m128[95-64];

     FI;

  FI;

FI;

IF (DEST[127-96]=NaN) THEN

  DEST[127-96] = SRC[127-96];

ELSE

  IF (SRC[127-96] = NaN) THEN

     DEST[127-96] = SRC[127-96];

  ELSE

     IF (DEST[127-96] > SRC/m128[127-96]) THEN

        DEST[127-96] = DEST[127-96];

     ELSE

        DEST[127-96] = SRC/m128[127-96];

     FI;

  FI;

FI;

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

#GP(0) при некорретном эффективном адресе операнда в памяти в сегментах CS, DS, ES, FS или GS, и для всех сегментов если операнд в памяти не выровнен по 16-байтным границам.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки) при страничной ошибке.
#NM, если CR0.TS = 1.
#UD, если CR0.EM = 1 или CR4.OSFXSR = 0, а также при встрече незамаскированных SIMD-исключений, когда CR4.OSXMMEXCPT = 0.
#XM при встрече незамаскированных SIMD-исключений, когда CR4.OSXMMEXCPT = 1.

Особые ситуации режима реальной адресации:

#GP, если любая часть операнда находится вне пространства эффективных адресов от 0 до 0FFFFh.
#NM, если CR0.TS = 1.
#UD, если CR0.EM = 1 или CR4.OSFXSR = 0, а также при встрече незамаскированных SIMD-исключений, когда CR4.OSXMMEXCPT = 0.
#XM при встрече незамаскированных SIMD-исключений, когда CR4.OSXMMEXCPT = 1.

Особые ситуации режима V86:

Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.


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




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

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

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