KTESTW, KTESTB, KTESTQ, KTESTD
Máscaras de prueba de bits empaquetadas y banderas de juego
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
VEX.L0.0F.W0 99 /r | KTESTW k1, k2 | RR | Valido | Valido | Establecer ZF y CF dependiendo del bit de signo AND y ANDN de 16 bits máscara OR AVX10.1 fuentes de registro. |
VEX.L0.66.0F.W0 99 /r | KTESTB k1, k2 | RR | Valido | Valido | Establecer ZF y CF dependiendo del bit de signo AND y ANDN de 8 bits máscara reg- OR AVX10.1 fuentes ister. |
VEX.L0.0F.W1 99 /r | KTESTQ k1, k2 | RR | Valido | Valido | Establecer ZF y CF dependiendo del bit de signo AND y ANDN de 64 bits máscara OR AVX10.1 fuentes de registro. |
VEX.L0.66.0F.W1 99 /r | KTESTD k1, k2 | RR | Valido | Valido | Establecer ZF y CF dependiendo del bit de signo AND y ANDN de 32 bits máscara OR AVX10.1 fuentes de registro. |
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.
RR
modrm.reglecturabyte 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
Realiza una comparación bitwise de los bits del primer operando de origen y los bits correspondientes en el segundo operando de origen. Si la operación AND produce todos los ceros, el ZF se establece de lo contrario el ZF está claro. Si el bitwise AND operación del primer operando de origen invertido con el segundo operando de origen produce todos los ceros el CF se establece de lo contrario el CF es claro. Sólo se actualiza el registro EFLAGS.
Nota: En VEX-versiones codificadas, VEX.vvvv está reservado y debe ser 1111b, de lo contrario las instrucciones #UD.
Operación
KTESTW
TEMP[15:0] := SRC2[15:0] AND SRC1[15:0]
IF (TEMP[15:0] = = 0)
THEN ZF :=1;
ELSE ZF := 0;
FI;
TEMP[15:0] := SRC2[15:0] AND NOT SRC1[15:0]
IF (TEMP[15:0] = = 0)
THEN CF :=1;
ELSE CF := 0;
FI;
AF := OF := PF := SF := 0;
KTESTB
TEMP[7:0] := SRC2[7:0] AND SRC1[7:0]
IF (TEMP[7:0] = = 0)
THEN ZF :=1;
ELSE ZF := 0;
FI;
TEMP[7:0] := SRC2[7:0] AND NOT SRC1[7:0]
IF (TEMP[7:0] = = 0)
THEN CF :=1;
ELSE CF := 0;
FI;
AF := OF := PF := SF := 0;
KTESTQ
TEMP[63:0] := SRC2[63:0] AND SRC1[63:0]
IF (TEMP[63:0] = = 0)
THEN ZF :=1;
ELSE ZF := 0;
FI;
TEMP[63:0] := SRC2[63:0] AND NOT SRC1[63:0]
IF (TEMP[63:0] = = 0)
THEN CF :=1;
ELSE CF := 0;
FI;
AF := OF := PF := SF := 0;
KTESTD
TEMP[31:0] := SRC2[31:0] AND SRC1[31:0]
IF (TEMP[31:0] = = 0)
THEN ZF :=1;
ELSE ZF := 0;
FI;
TEMP[31:0] := SRC2[31:0] AND NOT SRC1[31:0]
IF (TEMP[31:0] = = 0)
THEN CF :=1;
ELSE CF := 0;
FI;
AF := OF := PF := SF := 0;SIMD coma flotante Excepciones
None.
Otras excepciones
Ver Tabla 2-65, "TYPE K20 Excepción Definición (VEX-Encoded OpMask Instrucciones w/o Memoria Arg)."