logo

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

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

PFRCP

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

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

OF

DF

IF

TF

SF

ZF

AF

PF

CF

 

 

 

 

 

 

 

 

 

 

Код/Суфф.

Команда

Описание

Пример

0F 0F / 96

PFRCP mm,mm/m64

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

pfrcp mm6,mm5

Описание:

Команда PFRCP оперирует только с младшим двойным словом (в формате короткого вещественного) 64-битного операнда-источника. Она возвращает оценочное (приблизительное) значение обратной величины исходного операнда. Значение результата дублируется в обоих коротких вещественных элементах 64-разрядного операнда-назначения.

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

Исходный операнд в формате короткого вещественного имеет 24-битную мантиссу, возвращаемый результат также представляется в формате короткого вещественного, но точен только в старших 14 битах.

Если значение исходного операнда равно нулю, то результат равен наибольшему (для +0) или наименьшему (для –0) возможному для формата коротких вещественных значению. Если полученное при вычислениях значение результата по модулю меньше либо равно 2-127, то оно насыщается до нуля (знак нуля принимается равным знаку исходного операнда).

Если операнд-источник представлен в неподдерживаемом формате, то результат неопределен.

Увеличение точности результата (до полных 24 бит мантиссы) требует использования двух дополнительных команд (PFRCPIT1 и PFRCPIT2). При этом значение, возвращаемое командой PFRCP, передается как один из операндов в команду PFRCPIT1 и в команду PFRDPIT2 (см. описание команд PFRCPIT1 и PFRCPIT2).

Следующий пример иллюстрирует использование команды PFRCP при вычислении точного (все 24 бита мантиссы) значения q = a/b.

X0 = PFRCP(b)

X1 = PFRCPIT1(b,X0)

X2 = PFRCPIT2(X1 ,X0)

q = PFMUL(a,X2)

Операция:

DEST[31:0] = 1/SRC[31:0] ± δ;

DEST[63:32] = 1/SRC[31:0] ± δ;

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

#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       Сервер радиолюбителей России - схемы, документация,

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