KMOVW, KMOVB, KMOVQ, KMOVD
Muévete de y a los registros de máscaras
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
VEX.L0.0F.W0 90 /r | KMOVW k1, k2/m16 | RM | Valido | Valido | Mover 16 bits máscara de k2/m16 y almacenar el resultado en k1. OR AVX10.1 |
VEX.L0.66.0F.W0 90 /r | KMOVB k1, k2/m8 | RM | Valido | Valido | Mover 8 bits máscara de k2/m8 y almacenar el resultado en k1. OR AVX10.1 |
VEX.L0.0F.W1 90 /r | KMOVQ k1, k2/m64 | RM | Valido | Valido | Mover 64 bits máscara de k2/m64 y almacenar el resultado en k1. OR AVX10.1 |
VEX.L0.66.0F.W1 90 /r | KMOVD k1, k2/m32 | RM | Valido | Valido | Mover 32 bits máscara de k2/m32 y almacenar el resultado en k1. OR AVX10.1 |
VEX.L0.0F.W0 91 /r | KMOVW m16, k1 | MR | Valido | Valido | Mover 16 bits máscara de k1 y almacenar el resultado en m16. OR AVX10.1 |
VEX.L0.66.0F.W0 91 /r | KMOVB m8, k1 | MR | Valido | Valido | Mover 8 bits máscara de k1 y almacenar el resultado en m8. OR AVX10.1 |
VEX.L0.0F.W1 91 /r | KMOVQ m64, k1 | MR | Valido | Valido | Mover 64 bits máscara de k1 y almacenar el resultado en m64. OR AVX10.1 |
VEX.L0.66.0F.W1 91 /r | KMOVD m32, k1 | MR | Valido | Valido | Mover 32 bits máscara de k1 y almacenar el resultado en m32. OR AVX10.1 |
VEX.L0.0F.W0 92 /r | KMOVW k1, r32 | RR | Valido | Valido | Mover 16 bits máscara de r32 a k1. OR AVX10.1 |
VEX.L0.66.0F.W0 92 /r | KMOVB k1, r32 | RR | Valido | Valido | Mover 8 bits máscara de r32 a k1. OR AVX10.1 |
VEX.L0.F2.0F.W1 92 /r | KMOVQ k1, r64 | RR | Valido | No valido | Mover 64 bits máscara de r64 a k1. OR AVX10.1 |
VEX.L0.F2.0F.W0 92 /r | KMOVD k1, r32 | RR | Valido | Valido | Mover 32 bits máscara de r32 a k1. OR AVX10.1 |
VEX.L0.0F.W0 93 /r | KMOVW r32, k1 | RR | Valido | Valido | Mover 16 bits máscara de k1 a r32. OR AVX10.1 |
VEX.L0.66.0F.W0 93 /r | KMOVB r32, k1 | RR | Valido | Valido | Mover 8 bits máscara de k1 a r32. OR AVX10.1 |
VEX.L0.F2.0F.W1 93 /r | KMOVQ r64, k1 | RR | Valido | No valido | Mover 64 bits máscara de k1 a r64. OR AVX10.1 |
VEX.L0.F2.0F.W0 93 /r | KMOVD r32, k1 | RR | Valido | Valido | Mover 32 bits máscara de k1 a r32. OR AVX10.1 |
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
MR
modrm.rmlectura y escriturabyte 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)
RR
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
Copie valores del operando de origen (segundo operando) al operando de destino (primer operando). La fuente y operandos de destino pueden ser registros de máscaras, ubicación de memoria o propósito general. La instrucción no puede utilizarse para transferir datos entre los registros de propósito general y los lugares de memoria.
Cuando se mueve a un registro de máscaras, el resultado es cero extendido al tamaño MAX KL (es decir, 64 bits actualmente). Cuando se mueve a un registro de proposito general (GPR), el resultado es cero-extended al tamaño del destino. En modo de 32 bits, el tamaño de destino GPR predeterminado es de 32 bits. En modo de 64 bits, el tamaño de destino GPR predeterminado es de 64 bits. Tenga en cuenta que VEX.W sólo se puede utilizar para modificar el tamaño del GPR operando en modo 64b.
Operación
KMOVW
IF *destination is a memory location*
DEST[15:0] := SRC[15:0]
IF *destination is a mask register or a GPR *
DEST := ZeroExtension(SRC[15:0])
KMOVB
IF *destination is a memory location*
DEST[7:0] := SRC[7:0]
IF *destination is a mask register or a GPR *
DEST := ZeroExtension(SRC[7:0])
KMOVQ
IF *destination is a memory location or a GPR*
DEST[63:0] := SRC[63:0]
IF *destination is a mask register*
DEST := ZeroExtension(SRC[63:0])
KMOVD
IF *destination is a memory location*
DEST[31:0] := SRC[31:0]
IF *destination is a mask register or a GPR *
DEST := ZeroExtension(SRC[31:0])Intel C/C++ compilador intrínseco
KMOVW __mmask16 _mm512_kmov(__mmask16 a);Banderas afectadas
None.
SIMD coma flotante Excepciones
None.
Otras excepciones
Instrucciones con RRoperandocodificación, ver Tabla 2-65, "TYPE K20Definición de ExcepciónVEX-Instrucciones de OpMask codificadas w/o Memory Arg)." Instrucciones con RM o MRoperandocodificación, ver Tabla 2-66, "TYPE K21Definición de ExcepciónVEX-Instrucciones de OpMask codificadas a la memoria)."