Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
PFRCPIT1
Влияние команды на флаги и форматы команды:
|
|
|
|
|
|
|
|
|
Код/Суфф. |
|||
0F 0F / A6 |
PFRCPIT1 mm,mm/m64 |
Произвести первичное уточнение результата команды PFRCP (вычисление обратной величины) с исходным операндом в mm и результатом в mm/m64, уточненное значение поместить в mm |
pfrcp mm6,mm5 pfrcpit1 mm5,mm6 |
Описание:
Команда PFRCPIT1 выполняет первый шаг по итерации Ньютона-Рафсона для уточнения значения обратной величины, полученной после выполнения команды PFRCP. Второй и заключительный этап вычисления точного значения обратной величины выполняется по команде PFRCPIT2, результат которой точен во всех 24 битах мантиссы.
В качестве операндов команды PFRCPIT1 выступают: операнд-источник — оценочное значение обратной величины, полученное после выполнения команды PFRCP; операнд-назначение — исходное короткое вещественное значение, для которого производится вычисление обратной величины. Результат помещается в операнд-назначение.
Операндом-назначением является MMX-регистр. Операндом-источником может быть как MMX-регистр, так и операнд в памяти.
Поведение команды PFRCPIT1 определено только для правильных комбинаций операндов, такой, что один операнд был исходным для команды PFRCP, а другой был результатом этой же команды. Во всех других случаях результат неопределен.
Следующий пример иллюстрирует использование команды PFRCPIT1 при вычислении точного (все 24 бита мантиссы) значения q = a/b.
X0 = PFRCP(b)
X1 = PFRCPIT1(b,X0)
X2 = PFRCPIT2(X1 ,X0)
q = PFMUL(a,X2)
Операция:
dest[31..0] <- First_Step_Reciprocal(src[31..0]);
dest[63..32] <- First_Step_Reciprocal(src[63..32]);
Особые ситуации защищенного режима:
#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