Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
PINSRW
Влияние команды на флаги и форматы команды:
|
|
|
|
|
|
0F C4 /r ib |
PINSRW mm,r32/m16,imm8 |
Копировать в mm слово из r32/m16, номер слова задается imm8 |
Pentium III |
pinsrw mm1,[ecx],2 |
Описание:
Команда PINSRW копирует младшее слово операнда-источника (32-битный регистр общего назначения или операнд в памяти), в операнд-назначение (MMX-регистр), в позицию, заданную двумя младшими битами третьего операнда команды (imm8). Например, если imm8=1, то производится копирование в слово в битах 31:16 операнда-назначения.
Операция:
SEL = imm8 AND 0X3;
IF(SEL = 0) THEN
MASK = 000000000000FFFFh;
ELSE
IF(SEL = 1) THEN
MASK = 00000000FFFF0000h:
ELSE
IF(SEL = 2) THEN
MASK = FFFF000000000000h;
FI;
FI;
FI;
DEST = (DEST AND NOT MASK) OR ((m16/r32[15-0] << (SEL * 16)) AND MASK);
Особые ситуации защищенного режима:
#GP(0) при некорретном эффективном адресе операнда в памяти в сегментах CS, DS, ES, FS или GS.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки) при страничной ошибке.
#NM, если CR0.TS = 1.
#AC при невыровненных обращениях к памяти (когда CR0.AM = 1, EFLAGS.AC = 1 и CPL = 3).
#UD, если CR0.EM = 1.
#MF, если есть отложенные необработанные незамаскированные исключения FPU.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов от 0 до 0FFFFh.
#NM, если CR0.TS = 1.
#UD, если CR0.EM = 1.
#MF, если есть отложенные необработанные незамаскированные исключения FPU.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
#AC при невыровненных обращениях к памяти (когда CR0.AM = 1 и EFLAGS.AC = 1).
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru