STR
Store Task Register
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
0F 00 /1 | STR r/m16 | M | Valido | Valido | Tiendas selector de segmento de TR 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 de tareas (TR) 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 segmento del estado de tarea (TSS) para la tarea en curso.
Cuando el operando de destino es un registro de 32 bits, el selector de segmento de 16 bits se copia en los 16 bits inferiores del registro y los 16 bits superiores 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 de tamaño de operando.
En modo de 64 bits, la operación es la misma. El tamaño del operando de memoria se fija en 16 bits. En las tiendas de registro, el TR de 2 bytes es cero extendido si se almacena en un registro de 64 bits.
La instrucción STR es útil sólo en el software del sistema operativo. Sólo se puede ejecutar en modo protegido.
Operación
DEST := TR(SegmentSelector);Banderas afectadas
None.
Excepciones
Modo protegido
#GP(0) | Si el destino es un operado de memoria que se encuentra en un segmento no escrito o si la dirección efectiva 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 selector de segmento NULL. 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á 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
#UD | La instrucción STR no se reconoce en modo de direccion real. |
Modo virtual-8086
#UD | La instrucción STR no se reconoce en modo virtual-8086. |
Modo de compatibilidad
| Las mismas excepciones que en modo protegido. |
Modo de 64 bits
#GP(0) | Si la dirección de memoria está en forma no canónica. Si CR4.UMIP = 1 y CPL > 0. |
#SS(0) | Si la dirección de la pila 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. |