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