BZHI
Zero High Bits Comenzando con Posición de Bit Especificada
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
VEX.LZ.0F38.W0 F5 /r | BZHI r32a, r/m32, r32b | RMV | Valido | Valido | Cero bits en r/m32 comenzando con la posición en r32b, escriba resultado a r32a. |
VEX.LZ.0F38.W1 F5 /r | BZHI r64a, r/m64, r64b | RMV | Valido | No codificable | Cero bits en r/m64 comenzando con la posición en r64b, escriba resultado a r64a. |
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.
RMV
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 pidevex.vvvvlecturaprefijo VEX, campo vvvv (invertido)
Coste medido
Cargando las mediciones de arch-data...
Banderas nombradas
CFAcarreoPFParidadAFAcarreo auxiliarZFCeroSFSignoOFDesbordamiento
Descripción
BZHI copia los bits del primer operando de origen (el segundo operando) en el operando de destino (el primer operando) y aclara los bits más altos en el destino según el valor INDEX especificado por el segundo operando de origen (el tercer operando). El INDEX se especifica por bits 7:0 del segundo operando de origen. El valor INDEX está saturado al valor de OperandSize -1. CF se establece, si el número contenido en los 8 bits bajos del tercer operando es mayor que OperandSize -1.
Esta instrucción no es compatible en modo real y modo virtual-8086. El tamaño de operando es siempre 32 bits si no en modo de 64 bits. En modo de 64 bits tamaño de operando 64 requiere VEX.W1. VEX.W1 es ignorado en modos no-64-bit. Un intento de ejecutar esta instrucción con VEX.L no igual a 0 causará #UD.
Operación
N := SRC2[7:0]
DEST := SRC1
IF (N < OperandSize)
DEST[OperandSize-1:N] := 0
FI
IF (N > OperandSize - 1)
CF := 1
ELSE
CF := 0
FIBanderas afectadas
Las banderas ZF y SF se actualizan sobre la base del resultado. La bandera CF se establece como se especifica en la sección Operación. De la bandera se pone a cero. AF y PF banderas quedan indefinidas.
Intel C/C++ compilador intrínseco
BZHI unsigned __int32 _bzhi_u32(unsigned __int32 src, unsigned __int32 index);
BZHI unsigned __int64 _bzhi_u64(unsigned __int64 src, unsigned __int32 index);SIMD coma flotante Excepciones
None.
Otras excepciones
Ver Tabla 2-29, "Tipo 13 Condiciones de Excepción de Clase".