MOV

Mover a/desde Registros de Debug

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
0F 21/rMOV r32, DR0DR7MR.e. valid move debug registrarse a r32.
0F 21/rMOV r64, DR0DR7MRalid n.e. move extendido registro de depuración a r64.
0F 23 /rMOV DR0DR7, r32RM.e. valid move r32 para depurar el registro.
0F 23 /rMOV DR0DR7, r64RMalid n.e. move 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

  1. modrm.rm escriturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  2. modrm.reg lecturabyte ModRM, campo reg (bits 5-3)

RM

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. modrm.rm lecturabyte 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

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.
#UDSi 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.
#DBSi se accede a cualquier registro de depuración mientras que el DR7.GD[bit 13] = 1.
Modo real
#UDSi 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.
#DBSi 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.
#UDSi 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.
#DBSi se accede a cualquier registro de depuración mientras que el DR7.GD[bit 13] = 1.

Fuentes