MOV
Mover a/desde Registros de Debug
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
0F 21/r | MOV r32, DR0DR7 | MR | .e. v | alid m | ove debug registrarse a r32. |
0F 21/r | MOV r64, DR0DR7 | MR | alid n | .e. m | ove extendido registro de depuración a r64. |
0F 23 /r | MOV DR0DR7, r32 | RM | .e. v | alid m | ove r32 para depurar el registro. |
0F 23 /r | MOV DR0DR7, r64 | RM | alid n | .e. m | ove r64 para el registro de depuración ampliado. |
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.
MR
modrm.rmescriturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pidemodrm.reglecturabyte ModRM, campo reg (bits 5-3)
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...
Banderas nombradas
CFAcarreoPFParidadAFAcarreo auxiliarZFCeroSFSignoOFDesbordamiento
Descripción
Mueva el contenido de un registro de depuración (DR0, DR1, DR2, DR3, DR4, DR5, DR6, o DR7) a un registro de proposito general o viceversa. El tamaño de operando para estas instrucciones es siempre 32 bits en modos no-64-bit, independientemente del atributo el operando-size. (Ver Sección 20.2, "Debug Registers", de Intel(R) 64 e IA-32 Architectures Software Developer's Manual, Volumen 3A, para una descripción detallada de las banderas y campos en los registros de depuración.)
Las instrucciones deben ejecutarse a nivel de privilegios 0 o en modo de direccion real.
Cuando la bandera de extensión de depuración (DE) en el registro CR4 es clara, estas instrucciones funcionan en registros de depuración de una manera compatible con procesadores Intel386 e Intel486. En este modo, las referencias a DR4 y DR5 se refieren a DR6 y DR7, respectivamente. Cuando se establece la bandera DE en CR4, los intentos de referencia DR4 y DR5 resultan en una excepción no definida código de operación (#UD). (El registro CR4 fue añadido a la Arquitectura IA-32 comenzando con el procesador Pentium.)
A nivel el código de operación, el campo reg dentro del byte ModR/M especifica cuál de los registros de depuración es cargado o leído. Los dos pedazos en el campo mod son ignorados. El campo r/m especifica el registro de proposito general cargado o leído.
En modo de 64 bits, el tamaño de operación predeterminado de la instrucción es de 64 bits. El uso del prefijo REX.B permite el acceso a registros adicionales (R8R15). Se ignora el uso del prefijo REX.W o 66H. El uso del prefijo REX.R causa una excepción inválida. Vea la tabla resumen al comienzo de esta sección para la codificación de datos y límites.
Operación
IF ((DE = 1) and (SRC or DEST = DR4 or DR5))
THEN
#UD;
ELSE
DEST := SRC;
FI;Banderas afectadas
Las banderas OF, SF, ZF, AF, PF y CF quedan indefinidas.
Excepciones
Modo protegido
#GP(0) | Si el nivel actual de privilegios no es 0. |
#UD | Si CR4.DE[bit 3] = 1 (extensiones de depuración) y una instrucción MOV se ejecuta con DR4 o DR5. Si el prefijo LOCK es utilizado. |
#DB | Si se accede a cualquier registro de depuración mientras que el DR7.GD[bit 13] = 1. |
Modo real
#UD | Si CR4.DE[bit 3] = 1 (extensiones de depuración) y una instrucción MOV se ejecuta con DR4 o DR5. Si el prefijo LOCK es utilizado. |
#DB | Si se accede a cualquier registro de depuración mientras que el DR7.GD[bit 13] = 1. |
Modo virtual-8086
#GP(0) | Los registros de depuración no se pueden cargar ni leer cuando se encuentra en modo virtual-8086. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. |
Modo de 64 bits
#GP(0) | Si el nivel actual de privilegios no es 0. Si se intenta escribir un 1 a cualquiera de los bits 63:32 en DR6. Si se intenta escribir un 1 a cualquiera de los bits 63:32 en DR7. |
#UD | Si CR4.DE[bit 3] = 1 (extensiones de depuración) y una instrucción MOV se ejecuta con DR4 o DR5. Si se utiliza el prefijo LOCK. Si se utiliza el prefijo REX.R. |
#DB | Si se accede a cualquier registro de depuración mientras que el DR7.GD[bit 13] = 1. |