Ayuda como puedo saber que registro Opera?¿

Iniciado por FFernandez, 23 Junio 2020, 23:16 PM

0 Miembros y 1 Visitante están viendo este tema.

FFernandez

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"




MCKSys Argentina

Citar
13.5.5      AVX-512      State
The register state used by the Intel® Advanced Vector Extensions 512 (AVX-512) comprises the MXCSR register, the 8 64-bit opmask registers k0–k7, and 32 512-bit vector registers called ZMM0–ZMM31.

Fuente: https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf (pagina 327)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."