KANDW k1, k2, k3 "Bitwise AND word masks k2 and k3 and place result in k1"
Notacion Disamble VEX.L1.0F.W0 41 /r
en EXA.. 0xC5, 0xEC, 0x41, 0xCB "Bitwise AND word masks k2 and k3 and place result in k1"
11000100 W vvvv L pp
0xC5,
0xEC, 1 1101 1 00
1 no se cambia el tamaño del operando "W"
1101 segun tabla ???? XMM02/YMM02 "vvvv"
(1 256 Bits Vector "L") L=1 3 operandos en mascara
00 Sin extensión del codigo de operacion "pp"
0x41, 01000001 Opcode/Mapa KANDW
0xCB 11001011 MordR/m
Como puedo saber que son los registros k1,k2,k3 ?¿?¿?¿?¿?¿? analizando el binario
......................... No me he expresado bien, no encuentro la tabla que relacione esos tres registros k1,k2,k3 con el codigo de zeros y unos.
Resuelto lo tenia delante de las narices, jejejejej
aaa Especificación de registro de máscara de operaciones integrada
Las instrucciones que requieren aaa <> 000 no permiten que EVEX.z se establezca en 1.
AVX-512 Opmask registers
Ejemplo de codificacion completo
Opcode Operando destino, operando, operando field
KANDW k1, k2, k3 modificamos el Operando destino k1
Prefixo VEX + W vvvv L pp + Opcode + M/r
c5 ec 41 cb k1 k2 k3 W vvvv L pp M/r 11 001 011 k1 = base = 1
KANDW k4, k2, k3
c5 ec 41 e3 k4 k2 k3 M/r 11 100 011 k4 = base = 4
KANDW k7, k2, k3
c5 ec 41 fb k7 k2 k3 1 1101 1 00 11 111 011 k7 = base = 7
KANDW k1, k2, k3
c5 ec 41 cb k1 k2 k3 W vvvv L pp M/r 11 001 011 k3= m/r =3
KANDW k1, k2, k4
c5 ec 41 cc 11 001 100 k4= m/r =4
KANDW k1, k2, k7
c5 ec 41 cf 11 001 111 k7= m/r =7
KANDW k1, k2, k3
c5 ec 41 cb 1 1101 1 00 101 bits invertidos 010 = 2 =k2
KANDW k1, k4, k3
c5 dc 41 cb 1 1011 1 00 011 bits invertidos 100 = 4 =k4
KANDW k1, k7, k3
c5 c4 41 cb 1 1000 1 00 000 bits invertidos 111 = 7 =k7
Aqui se codifica el Operando que en este caso no tiene sentido, pero se trata igual.
El Opcode lleva implicito que es una operacion con mascara "Opmask"