MOVSX, MOVSXD
Muévete con Sign-Extension
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
0F BE /r | MOVSX r16, r/m8 | RM | Valido | Valido | Muévete a hablar con la expresión de signos. |
0F BE /r | MOVSX r3, r/m8 | RM | Valido | Valido | Muévete a la palabra doble con la señalización. |
REX.W + 0F BE /r | MOVSX r64, r/m8 | RM | Valido | No codificable | Muévete a cuadruplicar con la expresión de signos. |
0F BF /r | MOVSX r3, r/m16 | RM | Valido | Valido | Mueva la palabra a la palabra doble, con señalización. |
REX.W + 0F BF /r | MOVSX r64, r/m16 | RM | Valido | No codificable | Mueva la palabra a cuadrilátero con expresión de signos. |
63 /r2 | MOVSXD r16, r/m16 | RM | Valido | No codificable | Muévete a hablar con la expresión de signos. |
63 /r2 | MOVSXD r3, r/m3 | RM | Valido | No codificable | Mueva la palabra doble a la palabra doble con señalización. |
REX.W + 63 /r | MOVSXD r64, r/m3 | RM | Valido | No codificable | Mueva la palabra doble a cuadrícula con señalización. |
Codificacion de operandos
Cada modo es un valor de la columna Op/En de arriba. Dice en que campo de la instruccion codificada va cada operando, en el orden en que se escriben, y si la instruccion lo lee, lo escribe o ambas cosas.
RM
modrm.regescriturabyte ModRM, campo reg (bits 5-3)modrm.rmlecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
Coste medido
Cargando las mediciones de arch-data...
Descripción
Copia el contenido del operando de origen (registrado o ubicación de memoria) al operando de destino (registrado) y el signo extiende el valor a 16 o 32 bits (ver Figura 7-6 en el Intel(R) 64 e IA-32 Architectures Software Developer's Manual, Volumen 1). El tamaño del valor convertido depende del atributo el operando-size.
En modo de 64 bits, el tamaño de operación predeterminado de la instrucción es de 32 bits. El uso del prefijo REX.R permite el acceso a registros adicionales (R8-R15). El uso del prefijo REX.W promueve la operación a 64 bits. Vea la tabla resumen al comienzo de esta sección para la codificación de datos y límites.
Operación
DEST := SignExtend(SRC);Banderas afectadas
None.
Excepciones
Modo protegido
#GP(0) | Si un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS. Si el registro DS, ES, FS o GS contiene un NULL selector de segmento. |
#SS(0) | Si un operando de memoria dirección efectiva está fuera del límite del segmento SS. #PF(fault-code) Si un fallo de pagina ocurre. |
#AC(0) | Si la comprobación de alineación está habilitada y se hace una referencia de memoria no alineada mientras que el nivel de privilegio actual es 3. |
#UD | Si se utiliza el prefijo LOCK. |
Modo real
#GP | Si un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS. |
#SS | Si un operando de memoria dirección efectiva está fuera del límite del segmento SS. |
#UD | Si se utiliza el prefijo LOCK. |
Modo virtual-8086
#GP(0) | Si un operando de memoria dirección efectiva está fuera del límite de segmento CS, DS, ES, FS o GS. |
#SS(0) | Si un operando de memoria dirección efectiva está fuera del límite del segmento SS. #PF(fault-code) Si un fallo de pagina ocurre. |
#UD | Si se utiliza el prefijo LOCK. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. |
Modo de 64 bits
#SS(0) | Si una dirección de memoria que hace referencia al segmento SS está en forma no canónica. |
#GP(0) | Si la dirección de memoria está en forma no canónica. #PF(fault-code) Si un fallo de pagina ocurre. |
#AC(0) | Si la comprobación de alineación está habilitada y se hace una referencia de memoria no alineada mientras que el nivel de privilegio actual es 3. |
#UD | Si se utiliza el prefijo LOCK. |