Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
PFADD
Влияние команды на флаги и форматы команды:
Код/Суфф. |
|||
0F 0F / 9E |
PFADD mm,mm/m64 |
Сложить с насыщением упакованные вещественные из mm с mm/m64, результат поместить в mm |
pfadd mm1,[ebp] |
Описание:
Команда PFADD производит сложение коротких вещественных элементов операнда-источника с соответствующими элементами операнда-назначения. Результат операции записывается в операнд-назначение.
Операндом-назначением является MMX-регистр. Операндом-источником может быть как MMX-регистр, так и операнд в памяти.
Соответствующие элементы каждого операнда суммируются с насыщением. В младшее двойное слово результата записывается сумма младших коротких вещественных элементов, а в старшую часть — сумма старших коротких вещественных элементов.
Если значение суммы по модулю больше либо равно 2128, то результат насыщается до наибольшего или наименьшего возможного для формата коротких вещественных значения. Если значение суммы по модулю меньше либо равно 2-127, то результат насыщается до нуля (знак нуля принимается равным знаку наибольшего по абсолютному значению операнда или, при равенстве, знаку операнда-назначения).
Если один из операндов представлен в неподдерживаемом формате, а другой операнд не нулевой, то результат неопределен. Если один из операндов нулевой, то в результате сложения будет получен второй операнд.
Операция:
DEST[31:0] = DEST[31:0] + SRC[31:0];
DEST[63:32] = DEST[63:32] + 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