Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
MOVD
Влияние команды на флаги и форматы команды:
O |
D |
I |
T |
S |
Z |
A |
P |
C |
|
|
|
|
|
|
|
|
|
0F 6E /r |
MOVD mm,r/m32 |
mm = r/m32 |
movd mm2, [ecx] |
0F 7E /r |
MOVD r/m32,mm |
r/m32 = mm |
movd ebx, mm3 |
Описание:
Команда MOVD копирует 32 разряда из операнда-источника в операнд-назначение. Операнды могут быть MMX-регистрами, целочисленными регистрами и ячейками памяти. Команда MOVD не может переносить данные из MMX-регистра в MMX-регистр, из памяти в память или из целочисленного регистра в целочисленный регистр.
Когда операнд-назначение является MMX-регистром, то 32-разрядный операнд-источник записывается в младшие 32-разряда 64-разрядного операнда-назначения, при том в старшие 32 разряда заносятся нули.
Когда операндом-источником является MMX-регистр, то младшие 32 разряда MMX-регистра записываются в память или в 32-разрядный целочисленный регистр.
Операция:
IF DEST это регистр MMX
THEN
DEST = ZeroExtend(SRC);
ELSE (* SRC это регистр MMX *)
DEST = LowOrderDoubleword(SRC);
FI;
Особые ситуации защищенного режима:
#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) при невыровненной ссылке в память.
Замечание:
Некоторые процессоры Intel содержат ошибку, которая проявляется при использовании команды MOVD mm,reg после команд XOR reg,reg (или SUB reg,reg) и MOVSX/IMUL, а также при совпадении некоторых других условий. Обратитесь к технической документации Intel за описанием всех возможных случаев проявления ошибки.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru