SLDT
Store Local Descriptor Table Register
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
0F 00 /0 | SLDT r/m16 | M | Valido | Valido | Tiendas selector de segmento desde LDTR en r/m16. |
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.
M
modrm.rmescriturabyte 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
Tiendas el selector de segmento del registro local de la tabla de descriptores (LDTR) en el operando de destino. El operando de destino puede ser un registro de proposito general o una ubicación de memoria. El selector de segmento almacenado con esta instrucción apunta al descriptor de segmento (ubicado en el GDT) para el LDT actual. Esta instrucción sólo se puede ejecutar en modo protegido.
Fuera del modo IA-32e, cuando el operando de destino es un registro de 32 bits, el selector de segmento de 16 bits es copiado en los 16 bits de bajo orden del registro. Los 16 bits de alto orden del registro se limpian para los procesadores del Pentium 4, Intel Xeon y P6 de la familia. Quedan indefinidas para procesadores Pentium, Intel486, e Intel386. Cuando el operando de destino es una ubicación de memoria, el selector de segmento está escrito a la memoria como una cantidad de 16 bits, independientemente del tamaño de operando.
En modo de compatibilidad, cuando el operando de destino es un registro de 32 bits, el selector de segmento de 16 bits se copia en los 16 bits de bajo orden del registro. Los 16 bits de alto orden del registro se limpian. Cuando el operando de destino es una ubicación de memoria, el selector de segmento está escrito a la memoria como una cantidad de 16 bits, independientemente del tamaño de operando.
En modo de 64 bits, el uso de un prefijo REX en forma de REX.R permite el acceso a registros adicionales (R8-R15). El comportamiento de SLDT con un registro de 64 bits es para examinar el selector de 16 bits y almacenarlo en el registro. Si el destino es memoria y tamaño de operando es 64, SLDT escribirá el selector de 16 bits a la memoria como una cantidad de 16 bits, independientemente del tamaño de operando.
Operación
DEST := LDTR(SegmentSelector);Banderas afectadas
None.
Excepciones
Modo protegido
#GP(0) | Si el destino se encuentra en un segmento no escrito. Si la dirección efectiva un operando de memoria está fuera del límite de segmento CS, DS, ES, FS o GS. Si el registro DS, ES, FS o GS se utiliza para acceder a la memoria y contiene un NULL selector de segmento. Si CR4.UMIP = 1 y CPL > 0. |
#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á activada y se hace una referencia de memoria no alineada mientras CPL = 3. |
#UD | Si se utiliza el prefijo LOCK. |
Modo real
#UD | La instrucción SLDT no se reconoce en modo de direccion real. |
Modo virtual-8086
#UD | La instrucción SLDT no se reconoce en modo virtual-8086. |
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. Si CR4.UMIP = 1 y CPL > 0. #PF(fault-code) Si ocurre un fallo de pagina. |
#AC(0) | Si la comprobación de alineación está activada y se hace una referencia de memoria no alineada mientras CPL = 3. |
#UD | Si se utiliza el prefijo LOCK. |